Python实现鼠标拖动的监视

这篇具有很好参考价值的文章主要介绍了Python实现鼠标拖动的监视。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

模块准备

具体步骤 

设置监视函数

调用监视器

注意

结束语


模块准备

from pynput.mouse import Listener

这是用来监视鼠标的,pynput模块中还有监视键盘的。


具体步骤 

        首先,设置一个全局变量,这个全局变量是用来记录鼠标按下和释放的

drag_flag = True

设置监视函数

def on_click(x, y, button, pressed):
    global drag_flag, mouse_press, mouse_release
    if pressed:
        print("按下", x, y)
        mouse_press = (x, y)
        drag_flag = False
    else:
        mouse_release = (x, y)
        print("释放", mouse_release)
        drag_flag = True
    if drag_flag:
        # 按下和释放的坐标不相等
        if mouse_press != mouse_release:
            print("这是鼠标拖动")
        else:
            print("这是鼠标点击")
    else:
        pass

        注:这里on_click函数里面有四个参数,你可以不去使用,但是得定义出来,否则后来代码会报错。

        ①首先将drag_flag, mouse_press, mouse_release参数设置为全局变量,使得代码后面能使用,如果鼠标按下,监视器会监视鼠标按下的位置,我们可以打印输出,这里我们使用mouse_press接受这个坐标,并将drag_flag设置为False;同样的,如果鼠标没有按下,我们用mouse_release接收其释放位置,并将drag_flag设置为True

        ②接着判断drag_flag是否为True,如果为是,则执行判断语句,判断mouse_press是否等于mouse_release,也就是按下和释放的坐标位置是否一致,如果一致,说明是鼠标点击,否则就是鼠标拖动,这里你可以自己加你想要的功能。如果drag_flag是否为False,执行else语句,pass直接跳过。

调用监视器

pynput自带对鼠标和键盘的监视,我们直接如下使用就可以

def main():
    with Listener(on_click=on_click) as listener:
        listener.join()

注意

监视会一直执行on_click函数,因此如果没有drag_flag,也就是像下面这样

def on_click(x, y, button, pressed):
    global mouse_press, mouse_release
    if pressed:
        print("按下", x, y)
        mouse_press = (x, y)
    else:
        mouse_release = (x, y)
        print("释放", mouse_release)

    if mouse_press != mouse_release:
        print("这是鼠标拖动")
    else:
        print("这是鼠标点击")

        运行第一个if后会立刻进入第二个if,也就是你鼠标刚按下,打印了按下的坐标位置后,立刻进入判断鼠标按下和释放的坐标是否相同,虽然我这里没有给mouse_release参数设置初始值,但是这里按下坐标和释放坐标一般来说是不相同的,所以会打印“这是鼠标拖动”,然而这时候我们仅仅是按下鼠标,没有进行拖动,所以不是我们要实现的功能。

        但是加入drag_flag且在按下后置为False,释放后置为True,可以很好解决这个,因为按下后,drag_flag=False,进入不了判断按下坐标和释放坐标比较的if判断,只有当释放鼠标后,drag_flag=True,然后才会进入这个判断,最终实现我们想要的功能。

全部代码如下:

from pynput.mouse import Listener
# 全局变量
drag_flag = True
def on_click(x, y, button, pressed):
    global drag_flag, mouse_press, mouse_release
    if pressed:
        print("按下", x, y)
        mouse_press = (x, y)
        drag_flag = False
    else:
        mouse_release = (x, y)
        print("释放", mouse_release)
        drag_flag = True
    if drag_flag:
        # 按下和释放的坐标不相等
        if mouse_press != mouse_release:
            print("这是鼠标拖动")
        else:
            print("这是鼠标点击")
    else:
        pass

def main():
    with Listener(on_click=on_click) as listener:
        listener.join()

if __name__ == '__main__':
    main()

结束语

        笔者想着是需要一个能获取鼠标选中的文字,但是发现pythonwin32都没有能实现这样的接口,因此想着用什么方式实现呢,比较简单的就是监视鼠标按下和释放,但是网上对于这块,讲解的人较少,这里所讲的,也只是我实践出来的,对于pynput的监视,笔者了解甚少,想看源代码,跳转后貌似看不出啥。

        后续会继续更新这方面的内容!!文章来源地址https://www.toymoban.com/news/detail-652416.html

到了这里,关于Python实现鼠标拖动的监视的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pynput:用Python轻松掌握鼠标和键盘的控制

    引言 控制鼠标和键盘是自动化任务中的常见需求。在Python中,pynput库是一种强大的工具,可以帮助我们实现这些操作。本文将详细介绍pynput库的使用方法,并提供一些示例帮助读者快速上手。 1. 安装pynput库 首先,我们需要安装pynput库。可以使用pip命令来进行安装: 2. 控制鼠

    2024年02月04日
    浏览(30)
  • python pyautogui+pynput鼠标键盘自动控制与监听

    参考https://blog.csdn.net/hfy1237/article/details/127960423 官方文档 https://pyautogui.readthedocs.io/en/latest/ 1、基本函数 常用函数列表 函数名 功能 基本 pyautogui.size() 返回包含分辨率的元组 pyautogui.PAUSE 每个函数的停顿时间,默认0.1s pyautogui.FAILSAFE 是否开启防故障功能,默认True 键盘 pyautogui

    2024年02月11日
    浏览(38)
  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

    🚀🚀🚀学会控制鼠标和键盘是实现自动化的捷径!🚀🚀🚀 pynput是第三方库,所以在使用pynput之前需要下载pynput包。 下载方式1: 在终端输入 pip install pynput 下载包 下载方式2: 进入pypi官网:https://pypi.org➡️搜索 pynput ➡️选择版本➡️点击pip install pynput 下载方式3: 点击

    2023年04月09日
    浏览(32)
  • Python+turtle交互式绘图:可以用鼠标拖动的小海龟

    功能描述:代码运行后,在窗口上显示3个小海龟,使用鼠标拖动小海龟时可以动态改变窗口颜色,如下图所示。 说明:本例代码主体部分来自turtle Demo,我稍微修改了一下,重点增加了注释,方便阅读和理解。 参考代码: ----------相关阅读---------- 教学课件 1900页Python系列P

    2023年04月08日
    浏览(39)
  • Python【Matplotlib】交互式时间序列绘图,将x轴设置为日期时间格式并和鼠标拖动缩放相结合

    上篇博客:python【matplotlib】鼠标拖动滚动缩放坐标范围和拖动图例共存,得到启发,我们已经可以通过鼠标拖动缩放坐标范围和移动图例,来实现动态交互式绘图了,对于x轴是时间序列的绘图需求,能否也实现动态交互式绘图呢? 答案是肯定的,接下来我将详细描述其实现

    2024年03月13日
    浏览(46)
  • python pynput监听键盘

    2024年02月11日
    浏览(26)
  • 【Python_Selenium学习笔记(五)】基于Selenium模块实现鼠标操作

    为了模拟鼠标操作,Selenium 模块提供了 Actionchains 类,可以模仿人的几乎任何鼠标行为操作; 在此篇文章主要介绍 Actionchains类 的常用方法,使用流程,并以具体的示例进行展示。 perform():执行ActionChains中存储的行为; context_click(on_element=None):点击鼠标右键; double_click(on_

    2024年02月13日
    浏览(30)
  • [Python进阶] 操纵键盘:Pynput

    6.7.1 press、release 按下或释放某个按键。 6.7.2 tap 按下并弹起某个按键,按键只能为单个字符。否则报错。 输入字符串及组合键

    2024年02月05日
    浏览(32)
  • 【pynput】鼠标行为追踪并模拟

    利用本文内容从事的任何犯法行为和开发与本人无关,请理性利用技术服务大家,创建美好和谐的社会,让人们生活从繁琐中变得更加具有创造性! 这前面文章中,提到了【实时屏幕捕获】的内容,这篇文章则是为大家介绍在现代计算机环境中,鼠标行为追踪的有效的方法,

    2024年02月04日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包