Как я могу уничтожить виджет щелчком левой кнопки мыши за пределами определенной записи в tkinter python

#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 , если щелчка не было на виджете ввода.