【问题标题】:PyQt5 receiversPyQt5 接收器
【发布时间】: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 信号”方式。

【问题讨论】:

  • 可能不是这样,但你尝试过新风格的信号吗?这种表示法似乎已被弃用。

标签: python pyqt5


【解决方案1】:

使用新式语法,等效代码将是:

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

【讨论】:

  • 哇,真的很简单。非常感谢! (很遗憾我自己没有想到这一点......)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-01
  • 2023-03-03
  • 1970-01-01
  • 2015-03-02
相关资源
最近更新 更多