Уведомления

Группа в Telegram: присоединиться
  • Начало
  • » GUI
  • » Закрытие окна после нажатия кнопки [RSS Feed]

#1 Сен. 8, 2019 17:45:22

Feelgood
Зарегистрирован: 2016-08-04
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Закрытие окна после нажатия кнопки

Собственно хочу чтоб по нажатию кнопки “Поиск” выполнялась функция и окно само закрывалось, да бы не плодить ещё одну кнопку “Закрыть” как в текущем варианте.

 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)

Офлайн

#2 Сен. 8, 2019 19:54:52

rami
Зарегистрирован: 2018-01-08
Сообщения: 210
Репутация: +  54  -
Профиль   Отправить e-mail  

Закрытие окна после нажатия кнопки

У метода 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

Офлайн

  • Начало
  • » GUI
  • » Закрытие окна после нажатия кнопки[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version