有没有办法按下按钮而不在tkinter/python上触摸它?

Bry*_*ack 10 python user-interface tkinter button

嗨,我需要这样做因为,我正在进行匹配/记忆游戏,并且必须有一个按钮(与当前游戏中的按钮完全分开),当我按下它时,它必须自动显示匹配的卡片必须用鼠标触摸按钮.

按下按钮是否有"按下"功能或类似功能?

谢谢!:)

Lil*_*ung 15

正如Joel Cornett在评论中建议的那样,简单地调用传递给按钮的回调可能更有意义.但是,如文档中所述,该Button.invoke()方法将具有与按下按钮相同的效果(并将返回回调的结果),其优点是,如果按钮当前已禁用或没有回调,则无效.

  • 注意:当按钮被按下时,它会高亮并保持高亮直到回调完成。如果您直接调用回调,您将失去此行为。 (2认同)

A.J*_*uer 6

如果您还想要按钮的视觉反馈,您可以执行以下操作:

from time import sleep

# somewhere the button is defined to do something when clicked
self.button_save = tk.Button(text="Save", command = self.doSomething)

# somewhere else 
self.button_save.bind("<Return>", self.invoke_button)

def invoke_button(self, event):
    event.widget.config(relief = "sunken")
    self.root.update_idletasks()
    event.widget.invoke()
    sleep(0.1)
    event.widget.config(relief = "raised")
Run Code Online (Sandbox Code Playgroud)

在此示例中,当按钮具有焦点并且在键盘上按下 Enter/Return 时,按钮看起来像是被按下的,执行与单击(鼠标/触摸)时相同的操作,然后再次显示为未按下。