Есть ли способ найти родителя-виджета (в частности, кнопку) без сохранения родительского элемента в атрибуте объекта?Как получить доступ к родительскому элементу кнопки в Tkinter без написания класса?
but = Button(main_window, text = "close window!")
but.bind("<Button-1>", btn_handler)
def btn_handler(e):
e.parent().destroy() # I need something like this!
# e.parent() ==>> main_window
# without writing class and defining self.parent ...
Я ищу интернет в течение нескольких часов, и я не нашел правильного ответа.
Вы можете использовать лямбда или использовать глобальные переменные. Но решение класса обычно лучше. –
@iCodez Но если я просто не осведомлен, обратный вызов 'command' не получает событие, которое вызывает его, поэтому у вас нет ссылки на кнопку, которая нажата внутри функции. (Если вы явно не передаете его, например, 'but = Button (main_window, text =" закрыть окно! "); But.configure (command = lambda: btn_handler (but))' –
@EricLevieil, пожалуйста, дайте ссылку/объяснение/что-то о «lambda»? –