Здесь только одна функция вызывается как direct результат вызова кнопки (invoke_mybutton
), и все, что она делает, генерирует виртуальное событие <<MyButton-Command>>>
. Это виртуальное событие может быть названо как угодно, если имя уже не используется Tk. Как только это будет на месте, вы можете связывать и откреплять с <<MyButton-Command>>>
, используя опцию add='+'
в течение всего дня, и вы получите преимущества связывания с клавиатурой, о чем говорил Брайан Оукли.
try:
import Tkinter as tkinter # for Python 2
except ImportError:
import tkinter # for Python 3
def invoke_mybutton():
tk.eval("event generate " + str(myButton) + " <<MyButton-Command>>")
def command_1(e):
print("first fired")
def command_2(e):
print("second fired")
tk = tkinter.Tk()
myButton = tkinter.Button(tk, text="Click Me!", command=invoke_mybutton)
myButton.pack()
myButton.bind("<<MyButton-Command>>", command_1, add="+")
myButton.bind("<<MyButton-Command>>", command_2, add="+")
tk.mainloop()