PyQt5 接收器
Posted
技术标签:
【中文标题】PyQt5 接收器【英文标题】:PyQt5 receivers 【发布时间】:2016-10-24 15:18:45 【问题描述】:我想将我的一个 PyQt4 应用程序移植到 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 信号”方式。
【问题讨论】:
可能不是这样,但你尝试过新风格的信号吗?这种表示法似乎已被弃用。 【参考方案1】:使用新式语法,等效代码将是:
if worker.receivers(worker.signalFinished[str, str])):
do_stuff()
【讨论】:
哇,真的很简单。非常感谢! (很遗憾我自己没有想到这一点......)以上是关于PyQt5 接收器的主要内容,如果未能解决你的问题,请参考以下文章
如何在从串口python pyqt接收的textbrowser pyqt5上附加串行数据[重复]