Кнопка Команда выполнения при создании
В предоставленном коде, виджет кнопки создается с его вариантом команды, установленным к результату вызова функции с аргументом, что приводит к немедленному выполнению команды. Чтобы решить эту проблему, очень важно понять, как работает обработка событий в Tkinter.
В Tkinter обработка событий работает, связывая функцию с событием (например, кнопка нажатия). Когда происходит событие, Tkinter вызывает связанную функцию. Однако в предоставленном коде вариант команды содержит результат вызова кнопки функции ('hey'), а не ссылку на саму функцию.
Следовательно, код, по сути, делает то же самое, что и:
result = button('hey') b = Button(admin, text='as', command=result)
, следовательно, команда выполняется немедленно, когда кнопка создается, печатает «Hey» и «het», и когда кнопка нажимается, ничего не происходит, поскольку команда уже выполняется. Например:
b = button (admin, text = 'as', command = button)
b = Button(admin, text='as', command=button)
b = button (admin, text = 'as', command = lambda: button ('hey'))
это создает анонимную функцию, которая, когда вызывается, вызывает кнопку ('hey'), предоставляя желаемую функцию. &&?
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3