всплывающее окно с Tkinter - PullRequest
       10

всплывающее окно с Tkinter

1 голос
/ 01 декабря 2010

Я реализовал информационное всплывающее окно в приложении Python, используя виджет меню Tkinter.У меня есть текстовый виджет на холсте в корневом окне.Я создал виджет Меню, у которого есть корень в качестве родителя.Когда я обнаруживаю курсор мыши над текстовым виджетом, я отправляю всплывающее меню с помощью menuWidget.post ().Когда я получаю событие выхода из текстового виджета, я намеревался убрать всплывающее окно, вызывая menuWidget.unpost (), только всплывающее меню не исчезает, пока я не нажму в другом месте вне текстового виджета.

СначалаЭто разумный метод для реализации всплывающего информационного?А может кто-нибудь сказать мне, почему всплывающее меню не исчезнет?

1 Ответ

3 голосов
/ 01 декабря 2010

Это не правильный способ сделать информационное всплывающее окно. На Mac и на компьютерах с Windows меню являются родными элементами управления. Из-за этого команда unpost не работает, потому что tk передает управление циклу системных событий, чтобы получить поведение, специфичное для платформы.

Вместо этого вы хотите использовать окно верхнего уровня с установленным флагом overrideredirect. Это позволяет отображать окно без полей в любом месте. Плюсом этого является то, что вы не ограничены простым текстом - вы можете поместить на этот уровень все, что захотите - другой текстовый виджет, холст, кнопки и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...