ivan342
Июль 15, 2018 13:30:24
Добрый день.
Я сейчас пытаюсь переписать модуль который использует слоты и сигналы из библиотеки pyqt. Мне необходимо избавиться от pyqt, по этому я ищу альтернативную реализацию паттерна слоты и сигналы. Нашел библиотеку blinker, в ней меня все устраивает, кроме 1 небольшого нюанса. Когда сигнал вызывается из другого потока, обработчик сигнала выполняется не в главном потоке, а дочернем (из которого производился вызов сигнала). Для меня это является проблемой. Подскажите пожалуйста как можно сделать, чтобы присоединенный метод вызывался из главного потока (может быть это умеет blinker или есть другая хорошая реализация нужного мне паттерна).
PEHDOM
Июль 15, 2018 23:29:58
в свое время нашел вот таку штуку , просто и без затей, по крайней мере, для несложных задач, хватает с головой.
http://blog.abstractfactory.io/dynamic-signals-in-pyqt/Но насчет потоков не скажу…
alex925
Июль 18, 2018 14:44:35
ivan342У меня возникала такая же задача и для её решения пришлось немного переписать blinker, в итоге получилась библиотека aioblinker
https://bitbucket.org/alex925/aioblinker/src/master/. Можешь попробовать использовать её. API я особо не менял (все отличия указаны в README.md), по этому можешь пользоваться документацией blinker.
P.S. если найдешь какие-то недочеты, пиши.