У меня есть TextBox
и Button
. Когда пользователь нажимает Enter , я хочу, чтобы была нажата кнопка c, относящаяся к TextBox
. TextBox
и Button
- классы. Я передаю экземпляр Button
в TextBox
, чтобы мы знали, что по одному нужно щелкнуть. Button
- это класс с двумя методами click()
и autoclick()
.
Я хочу, чтобы autoclick()
проверял, нажата ли Enter клавиша и сделайте click()
верните True
, если это так. Я пробовал использовать декораторы и написал эту игрушечную программу, чтобы продемонстрировать именно то, что я пробовал.
class Button:
def click(self):
return False
def autoclick(self, func, *args):
def wrapper():
func(*args)# This function needes events as it argumnet
return True
return wrapper
b = Button()
class TextBox:
def __init__(self, button=None):
self.button = button
def box(self):
if enterPressed:
if self.button is not None:
self.button.autoclick(self.button.click, events)()
tb = TextBox(button=b)
while True:
tb.box()
if b.click():
print("this needs to be printed when user hits enter")
Я не получаю никаких ошибок, но это просто не работает.