python - pyqtSignal 和 QObject.receivers(..)

标签 python pyqt pyside

我需要在发出信号之前检查信号是否存在监听器。

class Test(QObject):
    test = pyqtSignal(str,dict)
    def run(self):
        if self.receivers(SIGNAL("test(str,dict)"):
           self.test.emit('blablabla',{})`

信号连接到右边的插槽,并成功发出信号。
检查签名信号时,方法QObject.receivers()显示此信号未连接。
我明白了,原因是签名不正确,我没有找到方法来指定信号的忠实签名。

最佳答案

在 pyqt5 中 SIGNAL 已弃用。它被替换为每个 QObject 的信号属性

如果 QObject.receivers(QObject.signal) > 0:

    print('signal connected')

检查 QPushButton 信号 clicked() 连接到任何插槽

button = QPushButton()
.
.
if button.receivers(button.clicked) > 0:
    .....

关于python - pyqtSignal 和 QObject.receivers(..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609291/

相关文章:

python - Django:如何使用模板渲染图像

python - 如何使用 Python 和 OpenCV 计算像素总和

matplotlib - 在 VisPy 中高效地绘制多条线

python - 选择 QListView 中的所有项目并在目录更改时取消选择所有项目

python - 结合 PySide 和 PyGame

python - 意外的 Selenium 日志记录错误

python - 关于 Numpy 形状

python - PyQt 信号中的保证和使用队列的比较

python - QScrollWidget 中的 PyQt4 + matplotlib

python - PyInstaller 和 PySide,如何包含 imageformats 文件夹?