Значения списка со списком ttk остаются открытыми после alt-tabbing - PullRequest
0 голосов
/ 29 января 2019

У меня есть класс, который унаследован от ttk combobox.При двойном щелчке пользователя я создаю этот комбинированный список и помещаю его с помощью функции .place ()

Когда я запускаю alt-tab и удаляю фокус из моего приложения tkinter, список значений комбинированного списка остается отображаемым, и с ним можно взаимодействовать,даже если остальная часть графического интерфейса не имеет фокусировки или видимости на моем экране.

Я использую Windows 7.

class ComboBoxPopup(ttk.Combobox):

    def __init__(self, gui_parent, item_parent, values, **kw):
        ''' If relwidth is set, then width is ignored '''
        super().__init__(gui_parent, **kw)
        self.item_parent = item_parent
        self['values'] = values
        self['state'] = 'normal'
        self['exportselection'] = True
        self.focus_force()
        self.bind("<Escape>", lambda *ignore: self.destroy())
        self.bind("<Return>", lambda *ignore: self.commit_and_exit() )
        self.bind("<<ComboboxSelected>>", lambda *ignore: self.commit_and_exit())

РЕДАКТИРОВАТЬ:

Я экспериментируюс учетом этого, кажется, что ни одно из моих событий не связано с выпадающим списком, а только с полем ввода.Я думаю, что это моя проблема.

1 Ответ

0 голосов
/ 01 февраля 2019

Ни одна из привязок, которые я поместил в свой Combobox, не повлияла на раскрывающийся список (я не знаю имени класса для этого раскрывающегося списка).

Но как только я связал обработчики с нажатиями клавиш altдля всех классов виджетов tkinter я смог получить раскрывающийся список под управлением программы и уничтожить всплывающее окно виджета со списком.

        self.bind_all("<Alt_L>", self.configurationAbort)
        self.bind_all("<Alt_R>", self.configurationAbort)
...