一个单击计数器,显示使用python 3.8、tkinter、win32和pynput单击左mb的次数

2024-03-29 14:45:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个非常基本的例子。我从这个网站上找到了显示脚本,并从pynput的纪录片中复制了鼠标侦听器。当我移除计数器部件时,它成功地显示clickamount变量的值,但当我将其添加回计数器部件时,它不会显示任何内容,也不会给出任何错误消息

#import things

from pynput.mouse import Listener
import tkinter, win32api, win32con, pywintypes

#variable defining

clickamount=0

#counter part using pynput

with Listener() as listener:
    listener.join()
def on_click(button, pressed):
    clickamount+=1

#display the amount

label = tkinter.Label(text=clickamount, font=('Times New Roman','80'), fg='black', bg='white')
label.master.overrideredirect(True)
label.master.geometry("+0+0")
label.master.lift()
label.master.wm_attributes("-topmost", True)
label.master.wm_attributes("-disabled", True)
label.master.wm_attributes("-transparentcolor", "white")

hWindow = pywintypes.HANDLE(int(label.master.frame(), 16))
# http://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx
# The WS_EX_TRANSPARENT flag makes events (like mouse clicks) fall through the window.
exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)

label.pack()
label.mainloop()


Tags: importmastertruews部件计数器labelattributes
1条回答
网友
1楼 · 发布于 2024-03-29 14:45:05

只需使用tkinter的内置事件和绑定:

clickamount = 0

def onclick(event):
    global clickamount
    clickamount+=1

root = Tk()
root.bind("<Button-1>", onclick)
root.mainloop()

使用鼠标的方法:

import mouse

clickamount = 0

def onclick():
    global clickamount
    clickamount+=1
    print(clickamount)

root = Tk()
mouse.on_click(onclick)
root.mainloop()

相关问题 更多 >