Function Tkinter链接按钮按下并';返回';钥匙

Function Tkinter链接按钮按下并';返回';钥匙,function,python-3.x,button,tkinter,Function,Python 3.x,Button,Tkinter,我看过各种教程,了解如何将按键和键盘上的“回车”键连接起来。我可以同时做这两件事,但一次只能做一件。键盘样式是rootWindow.bind(''functionName),而链接屏幕按钮的样式是command=functionName。我只是无法让它们在同时使用时工作 这是我工作的基本框架 def printthis(event): print("worked") root = Tk() root.bind('<Return>', printthis) button1

我看过各种教程,了解如何将按键和键盘上的“回车”键连接起来。我可以同时做这两件事,但一次只能做一件。键盘样式是
rootWindow.bind(''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()
def打印此(事件):
打印(“已打印”)
root=Tk()
root.bind(“”,printthis)
button1=按钮(根,text='Enter',command=printthis)
按钮1.pack()
root.mainloop()
当我运行当前代码时出现此错误,我只是不确定应该将什么“事件”传递到
command=printthis
部分

TypeError:printthis()缺少1个必需的位置参数:“事件”


作为旁注,我使用的是Python 3.x,当您绑定函数时,每当绑定操作发生时,事件对象将被传递到函数中。如果您希望函数同时适用于on event和button press,那么您有两个选项

首先是函数是否需要事件对象,然后允许函数为事件接受可选参数

def printthis(event = None):
    if event is None:
        # handle this case

    # otherwise handle event object normally.
第二个是如果您不关心事件对象,那么第1个仍然可以(您只是从不使用事件参数),或者您可以在绑定时使用
lambda

def printthis():
    print("worked")

root.bind('<Return>', lambda e: printthis())
def printthis():
打印(“已打印”)
root.bind(“”,lambda e:printthis())

lambda
获取事件对象
e
,然后调用函数而不传入
e
丢弃它。

绑定函数时,每当绑定操作发生时,事件对象都会传入它。如果希望函数同时在事件和按钮上工作,则有两个选项。

首先是函数是否需要事件对象,然后允许函数为事件接受可选参数

def printthis(event = None):
    if event is None:
        # handle this case

    # otherwise handle event object normally.
第二个是如果您不关心事件对象,那么第1个仍然可以(您只是从不使用事件参数),或者您可以在绑定时使用
lambda

def printthis():
    print("worked")

root.bind('<Return>', lambda e: printthis())
def printthis():
打印(“已打印”)
root.bind(“”,lambda e:printthis())
lambda
获取事件对象
e
,然后调用函数而不传入
e
丢弃它