Я создал класс в python, который расширяет холст tkinter. Я пытаюсь прикрепить событие к этому холсту, чтобы обрабатывать клики внутри класса. Он действует, если я прикрепить событие вне самого класса, но при связывании в классе событие щелчка происходит только один раз, а затем переходит ничего не делать вообще только выполняя первый клик:Присоединение события к себе (холст) tkinter
class myCanvas(Canvas):
def callback(event):
print('clicked at', event.x, event.y)
def __init__(self, parent, **kwargs):
Canvas.__init__(self, parent, **kwargs)
self.bind("<Button-1>", self.callback())
self.height = self.winfo_reqheight()
self.width = self.winfo_reqwidth()
Binding функции событий правильно, только если я присоединяю событие вне класса. Любая помощь в поиске способа прикрепления события к расширенному холсту будет оценена по достоинству.
Невозможно воспроизвести, работает отлично. («Совершенно прекрасно», что означает, что каждый раз, когда я нажимаю, появляется ошибка, потому что отсутствует параметр «self».) Не уверен, имеет ли значение, но какая версия python вы используете? –
Действительно? Я использую python 3.5 и Pycharm, и он работает для меня, но я просто не работаю так, как я ожидаю. – D3181
Вы имеете в виду класс class class mycanvas(), у которого отсутствует параметр self? – D3181