PyGTK leave-notify-event не должен запускаться, если вводить детей

Пожалуйста, смотрите этот пример кода:

import gtk class MenuBox(gtk.EventBox): def __init__(self): super(MenuBox, self).__init__() self.set_visible_window(False) self.connect('enter-notify-event', self._on_mouse_enter) self.connect('leave-notify-event', self._on_mouse_leave) btn = gtk.Button('x') btn.set_border_width(12) self.add(btn) def _on_mouse_enter(self, wid, event): print '_on_mouse_enter' def _on_mouse_leave(self, *args): print '_on_mouse_leave' def main(): win = gtk.Window() win.connect('destroy', gtk.main_quit) win.add(MenuBox()) win.show_all() gtk.main() if __name__ == '__main__': main() 

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

В моем реальном коде у меня есть более сложный виджет (основанный на gtk.Fixed), который имеет границу в начале, но не в конце. Так что просто перемещение события к ребенку тоже не поможет.

 
Interesting Posts for Van-Lav

Функция сопоставления шаблонов (поиск изображений) в библиотеке изображений Python

Не удалось установить pip и селен в windows7

Поиск Python IMAP с использованием объекта, закодированного с помощью iso-8859-1

Как определить соответствующий интервал проверки?

Скрипт, запущенный в PyCharm, но не из командной строки

Получить текущий URL-адрес в Python с помощью os.environ

селен не может скриншот веб-элемента

virtualenv на windows устанавливается в пакеты системных сайтов

Таблицы Python-Docx – способ изменить шрифт?

Python Regex – заменить строку, не расположенную между двумя конкретными словами

Создание часового / минимального диапазона времени с использованием панд

Использование Python PIL для превращения RGB-изображения в чистое черно-белое изображение

Не удалось запустить scons, получив ошибку импорта

Расширяемый генератор с предустановленными номерами – Python

Использование расширений фляг в чертежах колб

Python - лучший язык программирования в мире.