Используем PyDispatcher вместо Pubsub — wxPython #8

автор

В прошлой статье про Pubsub мы рассмотрели, как использовать встроенную в wxPython версию Pubsub для того, чтобы отправлять сообщения внутри приложения. Сегодня же мы научимся альтернативному методу, который называется PyDispatcher. Он ведёт себя также, как и модуль Pubsub. Давайте разберёмся!

Приступаем к работе

Прежде всего вам нужно скачать PyDispatcher и установить его на вашу систему. Если у вас установлен pip, вы можете ввести следующую команду:

В обратном случае, перейдите на страницу продукта в интернете и скачайте его оттуда. Одним из преимуществ Pubsub является то, что он уже включён в стандартный дистрибутив wxPython. Как бы то ни было, если вы хотите использовать Pubsub ОТДЕЛЬНО от wxPython, вам нужно будет скачать его самостоятельную базу кода и установить её. Среди программистов много тех, кто не хочет загружать больше дополнительных элементов, чем им нужно.

В любом случае, теперь у нас есть PyDispatcher, так что давайте импортируем код из Pubsub и посмотрим, что из этого выйдет!

Давайте сделаем небольшой перерыв. Сначала мы импортируем dispatcher из пакета pydispatch. Затем мы редактируем метод onSendAndClose для OtherFrame, таким образом, чтобы он отправлял ваши сообщения панельным слушателям. Вот первый фрагмент, который нам нужно изменить:

Теперь нам нужно изменить класс MyPanel, чтобы установить нового слушателя:

Этот код сообщает pydispatcher слушать любого отправителя, у которого есть сигнал от panelListener. Если у него есть этот сигнал, тогда он вызовет панель метода myListener. Это было довольно простое изменение.

ИТОГИ

Как я уже упоминал в начале статьи, пакет PyDispatcher в wxPython следует той же идее, что и пакет PubSub, но, с точки зрения кода, исполняет её немного по-другому. Лично я предпочитаю Pubsub, так как его версия встроена в wxPython, так что мне не нужно устанавливать никаких дополнений. Как бы то ни было, вам стоит взглянуть на оба API, чтобы понять какой из них будет оптимально подходить под ваш стиль программирования. Иногда лучшее API стоит установки дополнительных приложений.

Вам может быть интересно

Scroll Up