Уведомления

Группа в Telegram: @pythonsu

#1 Июль 15, 2018 13:30:24

ivan342
Зарегистрирован: 2016-02-28
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Реализация паттерна slot and signal

Добрый день.
Я сейчас пытаюсь переписать модуль который использует слоты и сигналы из библиотеки pyqt. Мне необходимо избавиться от pyqt, по этому я ищу альтернативную реализацию паттерна слоты и сигналы. Нашел библиотеку blinker, в ней меня все устраивает, кроме 1 небольшого нюанса. Когда сигнал вызывается из другого потока, обработчик сигнала выполняется не в главном потоке, а дочернем (из которого производился вызов сигнала). Для меня это является проблемой. Подскажите пожалуйста как можно сделать, чтобы присоединенный метод вызывался из главного потока (может быть это умеет blinker или есть другая хорошая реализация нужного мне паттерна).

Офлайн

#2 Июль 15, 2018 23:29:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Реализация паттерна slot and signal

в свое время нашел вот таку штуку , просто и без затей, по крайней мере, для несложных задач, хватает с головой.
http://blog.abstractfactory.io/dynamic-signals-in-pyqt/
Но насчет потоков не скажу…



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 15, 2018 23:33:26)

Офлайн

#3 Июль 18, 2018 14:44:35

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Реализация паттерна slot and signal

ivan342
У меня возникала такая же задача и для её решения пришлось немного переписать blinker, в итоге получилась библиотека aioblinker https://bitbucket.org/alex925/aioblinker/src/master/. Можешь попробовать использовать её. API я особо не менял (все отличия указаны в README.md), по этому можешь пользоваться документацией blinker.

P.S. если найдешь какие-то недочеты, пиши.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version