python gui tkinter中的绑定功能遇到麻烦

时间:2019-06-24 11:26:55

标签: python user-interface tkinter

此代码是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窗口中的鼠标左键单击上在控制台中向左打印,而右键单击则

1 个答案:

答案 0 :(得分:1)

首先,如注释中所述,鼠标按钮事件需要<...>。关于rightclick无法正常工作:这是因为鼠标右键的偶数实际上是<Button-3>,而<Button-2>是鼠标中键(或按下鼠标滚轮)。 / p>

frame.bind("<Button-1>", leftclick)
frame.bind("<Button-3>", rightclick)

如果您将鼠标右键视为“第二”按钮,则可能有点不直观,但是如果您只是从左到右枚举按钮,这是有道理的。这是AFAIK,也与所有(大多数?)其他UI框架和语言一致。