2016-10-24 2 views
1

Я хотел перенести мое приложение PyQt4 на PyQt5 и столкнулся с тонкой проблемой.Приёмники PyQt5

В каком-то момент я проверяю, если пользовательский QThread объект (worker) имеет еще некоторый определенный сигнал, подключенный, который я сделал в PyQt4 как так (примерный код):

if worker.receivers(PyQt4.QtCore.SIGNAL("signalFinished(QString,QString)")): 
    do_stuff() 

Есть ли способ сделать это в PyQt5? PyQt5 reference не очень помогает, и всегда лишает меня C++ reference, где он по-прежнему остается таким же.

Конечно, существует более «pythonic» решение, использующее блок try-except-pass вместо оператора if, но я все еще задаюсь вопросом о сигнале «PyQt».

+0

Это может быть не так, но вы пытались с новыми сигналами стиля? Эта нотация кажется устаревшей. – PyNico

ответ

2

С синтаксисом нового стиля, эквивалентный код будет просто:

if worker.receivers(worker.signalFinished[str, str])): 
    do_stuff() 
+0

Ничего себе, мертво-просто. Большое спасибо! (стыд, я сам этого не понял) – tku137