我想定期检查按钮是否被按下。如果没有,那么我想打印一些东西。我需要简单的例子来实现它。提前谢谢。
from Tkinter import *
import subprocess
def execute_querie1():
counter = 0
global a
a = 0
def onRightClick(event):
print 'Got right mouse button click:',
showPosEvent(event)
print ("Right clickkkk")
close_window()
a = 1
return a
def close_window ():
# root.destroy()
tkroot.destroy()
def showPosEvent(event):
print 'Widget=%s X=%s Y=%s' % (event.widget, event.x, event.y)
def quit(event):
print("Double Click, so let's stop")
import sys; sys.exit()
def onLeftClick(event):
a = True
print 'Got light mouse button click:',
showPosEvent(event)
print ("Left clickkkk" )
close_window()
return a
subprocess.call(["xdotool", "mousemove", "700", "400"])
tkroot = Tk()
labelfont = ('courier', 20, 'bold')
widget = Label(tkroot, text='Hello bind world')
widget.config(bg='red', font=labelfont)
widget.config(height=640, width=480)
widget.pack(expand=YES, fill=BOTH)
g = widget.bind('<Button-3>', onRightClick)
h = widget.bind('<Button-1>', onLeftClick)
print g
print h
widget.focus()
tkroot.title('Click Me')
tkroot.mainloop()
if __name__ == "__main__":
execute_querie1()
答案 0 :(得分:2)
您可以创建包含按钮是否按下的变量,然后将点击结果绑定到改变这些变量的函数,广告使用after
定期运行一个函数来检查按钮是否被点击。
这样的事情:
from Tkinter import *
class App():
def __init__(self):
self.root = Tk()
self.root.geometry('300x300+100+100')
self.left = False
self.right = False
self.root.bind('<Button-1>', self.lefttclick)
self.root.bind('<Button-3>', self.rightclick)
self.root.after(10, self.clicked)
self.root.mainloop()
def clicked(self):
if not self.right and not self.left:
print 'Both not clicked'
elif not self.left:
print 'Left not clicked'
elif not self.right:
print 'Right not clicked'
self.right = False
self.left = False
self.root.after(1000, self.clicked)
def rightclick(self, event):
self.right = True
def lefttclick(self, event):
self.left = True
App()
我已将应用程序放入类中,因为这样可以将left
和right
变量传递给自己的函数。