【问题标题】:having trouble with bind function in python gui tkinterpython gui tkinter中的绑定函数有问题
【发布时间】:2019-06-24 11:26:55
【问题描述】:

此代码是来自youtube 的教程。给定的代码应该在控制台上右击鼠标时打印,左击也是如此,但它没有这样做。我认为问题在于绑定功能。

我正在使用 python 3.7,其中已经有 tkinter 包,我该怎么做才能让它工作,非常感谢。

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 窗口内单击鼠标左键时在控制台中打印“左”,右键单击也是如此

【问题讨论】:

  • 应该是'<Button-1>''<Button-2>'
  • 谢谢先生按钮 1 用于左键单击,但右键单击没有任何反应
  • 我认为“Button-2”是鼠标中键。试试“
  • 是的,你是对的,它现在正在工作,谢谢

标签: python user-interface tkinter


【解决方案1】:

首先,正如在 cmets 中已经提到的,鼠标按钮事件需要<...>。关于rightclick不起作用:这是因为鼠标右键的偶数实际上是<Button-3>,而<Button-2>是鼠标中键(或按下鼠标滚轮)。

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

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

【讨论】:

  • 谢谢您,先生,实际上我正在使用笔记本电脑鼠标垫,所以我认为按钮 2 将是右键单击再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 2020-11-28
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多