#python #python-3.x #tkinter #bind #tkinter-entry
Вопрос:
Я сделал запись для переименования файла. Когда я щелкаю файл, виджет ввода открыт, и я хочу, чтобы я мог уничтожить виджет, когда я щелкаю за пределами виджета ввода, и если я щелкаю внутри виджета, он не должен быть уничтожен. Код выглядит так, как показано ниже.
self.root.bind("<Button-1>", self.rename_cancel)
def rename_cancel(self, event):
if self.rename_act_mpf == 1:
self.rename_entry_mpf.destroy()
self.rename_act_mpf = 0
if self.rename_act_db == 1:
self.rename_entry_db.destroy()
self.rename_act_db = 0
в этом коде, когда я нажимаю где-то, виджет ввода уничтожается, даже если я нажимаю на внутреннюю часть виджета. Как я могу сделать исключение для этого?
Ответ №1:
event.widget
сообщит вам, на какой виджет был нажат. Вы можете сравнить это с вашим виджетом ввода и позвонить destroy
, если щелчка не было на виджете ввода.