此代码是youtube的教程。给定的代码应该在控制台的鼠标右键单击上打印,而在鼠标左键单击上打印相同,但不是这样。我认为问题出在绑定函数上。
我使用的是已经装有tkinter
软件包的python 3.7,我该怎么做才能使其正常工作,非常感谢。
from tkinter import *
root = Tk()
def leftclick(event):
print("left")
def rightclick(event):
print("right")
frame = Frame(root, width=300, height=300)
frame.bind("button-1", leftclick)
frame.bind("button-2", rightclick)
frame.pack()
root.mainloop()
我希望程序在tk
窗口中的鼠标左键单击上在控制台中向左打印,而右键单击则
答案 0 :(得分:1)
首先,如注释中所述,鼠标按钮事件需要<...>
。关于rightclick
无法正常工作:这是因为鼠标右键的偶数实际上是<Button-3>
,而<Button-2>
是鼠标中键(或按下鼠标滚轮)。 / p>
frame.bind("<Button-1>", leftclick)
frame.bind("<Button-3>", rightclick)
如果您将鼠标右键视为“第二”按钮,则可能有点不直观,但是如果您只是从左到右枚举按钮,这是有道理的。这是AFAIK,也与所有(大多数?)其他UI框架和语言一致。