【问题标题】:Tkinter link button press and 'return' keyTkinter 链接按钮按下和“返回”键
【发布时间】:2017-02-04 01:45:54
【问题描述】:

我查看了有关如何将按钮按下“返回”的键盘按下链接的各种教程。我可以两者都做,但一次只能做一个。键盘样式为rootWindow.bind('<Return>' functionName,链接屏幕按钮为command=functionName。我只是无法让它们同时使用。

这是我正在使用的非常基本的框架

def printthis(event):
    print("worked")

root = Tk()
root.bind('<Return>', printthis)

button1 = Button(root, text='Enter', command=printthis)
button1.pack()

root.mainloop()

运行当前代码时出现此错误,我只是不确定应该将什么“事件”传递到 command=printthis 部分

TypeError: printthis() missing 1 required positional argument: 'event'

作为旁注,我使用的是 Python 3.x

【问题讨论】:

    标签: function python-3.x button tkinter


    【解决方案1】:

    当您绑定一个函数时,只要发生绑定操作,就会将一个事件对象传递给它。如果您希望您的功能同时适用于事件和按钮按下,那么您有两个选择。

    首先是您的函数是否需要事件对象。然后让你的函数为事件接受一个可选参数。

    def printthis(event = None):
        if event is None:
            # handle this case
    
        # otherwise handle event object normally.
    

    第二个是如果你不关心事件对象那么第一个仍然可以(你只是从不使用事件参数),或者你可以在绑定时使用lambda

    def printthis():
        print("worked")
    
    root.bind('<Return>', lambda e: printthis())
    

    lambda 接受e 这是事件对象,然后调用你的函数而不传递e 丢弃它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多