Форум сайта python.su
Собственно хочу чтоб по нажатию кнопки “Поиск” выполнялась функция и окно само закрывалось, да бы не плодить ещё одну кнопку “Закрыть” как в текущем варианте.
class Search(tk.Toplevel): def __init__(self): super().__init__() self.init_search() self.view = app def init_search(self): self.title('Поиск') self.geometry('300x100+400+300') self.resizable(False, False) label_search = tk.Label(self, text='Поиск') label_search.place(x=50, y=20) self.entry_search = ttk.Entry(self) self.entry_search.place(x=105, y=20, width=150) btn_cancel = ttk.Button(self, text='Закрыть', command=self.destroy) btn_cancel.place(x=185, y=50) btn_search = ttk.Button(self, text='Поиск') btn_search.place(x=105, y=50) btn_search.bind('<Button-1>', lambda event: self.view.search_record(self.entry_search.get()))
Отредактировано Feelgood (Сен. 8, 2019 17:45:32)
Офлайн
У метода bind есть третий необязательный параметр add, если его значение '+' или True, то второе действие добавляется к первому, если третьего параметра нет или он равен False, то второе действие заменяет первое.
class Search(tk.Toplevel): def __init__(self): super().__init__() self.init_search() self.view = app def init_search(self): self.title('Поиск') self.geometry('300x100+400+300') self.resizable(False, False) label_search = tk.Label(self, text='Поиск') label_search.place(x=50, y=20) self.entry_search = ttk.Entry(self) self.entry_search.place(x=105, y=20, width=150) # btn_cancel = ttk.Button(self, text='Закрыть', command=self.destroy) # btn_cancel.place(x=185, y=50) btn_search = ttk.Button(self, text='Поиск и закрытие') btn_search.place(x=105, y=50) # первое действие: поиск btn_search.bind('<Button-1>', lambda event: self.view.search_record(self.entry_search.get())) # второе действие: закрытие окна btn_search.bind('<Button-1>', lambda event: self.destroy(), add='+') #или add=True
Офлайн