Вот простой пример того, что вы можете сделать, чтобы узнать, была ли кнопка нажата или еще не нажата.
import tkinter.ttk, functools
class Example(tkinter.Tk):
def __init__(self, buttons):
super().__init__()
self.button_set = set()
for button in range(buttons):
button = tkinter.ttk.Button(self, text='Button '+str(button))
button.pack()
self.button_set.add(button)
self.setup_buttons()
self.bind('<Escape>', self.check_buttons)
self.mainloop()
def setup_buttons(self):
for button in self.button_set:
button['command'] = \
functools.partial(setattr, button, 'pressed', True)
button.pressed = False
def check_buttons(self, event):
for button in self.button_set:
print('Button {} has{} been pressed.'.format(id(button),
(' not', '')[button.pressed]))
if __name__ == '__main__':
Example(5)
Когда код запущен, вы можете нажать клавишу Escape
получить распечатку в консоли того, какие кнопки были нажаты.Нажатие кнопок установит для их атрибута pressed
значение true, и вы сможете получить еще одну распечатку того, какие кнопки были нажаты.Программно, вы должны следовать примеру в методе check_buttons
, чтобы узнать, была ли нажата кнопка или нет.