日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python tkinter 实现鼠标按下和弹起事件监测

發布時間:2023/12/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python tkinter 实现鼠标按下和弹起事件监测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、本來準備使用pyhook的,結果python3下存在兼容性問題,鼠標會卡死,勸退!氣憤+1!

2.然后準備使用據說好用的pyhook3或pywinhook,結果安裝出問題,又是什么swig又是什么c++運行庫,成功把我勸退!氣憤+2!

3.最后迫不得已用了一個折衷的方案,還可以檢測鼠標的實時位置:

# -*- coding: UTF-8 -*-from pynput.mouse import Listener from tkinter import * import tkinter as tkglobal btstate global btstate1def on_hover():global btstateprint("mouse over")btstate=1def on_leave():global btstateprint("mouse leave")btstate=0def on_hover1():global btstate1print("mouse over")btstate1=1def on_leave1():global btstate1print("mouse leave")btstate1=0def callback(event):x = event.xy = event.ytextvar= "移動位置-x:{},y:{}".format(x,y)var.set(textvar)def on_click(x, y, button, is_press):global btstateglobal btstate1# print(f"鼠標{button}鍵在({x}, {y})處{'按下' if is_press else '松開'}")if is_press and btstate==1:print("press button1!")elif btstate==1:print("release button1!")if is_press and btstate1==1:print("press button2!")elif btstate1==1:print("release button2!")root = Tk() root.title("tk鼠標按下和彈起事件") root.geometry("400x300")B = tk.Button(root, text ="點我") B.pack() B.bind('<Enter>',lambda event :on_hover()) B.bind('<Leave>',lambda event :on_leave())C = tk.Button(root, text ="點我") C.pack() C.bind('<Enter>',lambda event :on_hover1()) C.bind('<Leave>',lambda event :on_leave1())listener = Listener(on_click=on_click) listener.start()x,y=0,0 var = StringVar() text = "移動位置-x:{},y:{}".format(x,y) var.set(text)lab = Label(root,textvariable=var) lab.pack(anchor=S,side=RIGHT,padx=10,pady=10) root.bind("<Motion>",callback)root.mainloop()

好了就這樣,希望對大家有幫助!

總結

以上是生活随笔為你收集整理的python tkinter 实现鼠标按下和弹起事件监测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。