0

有人为我运行此代码作为健全性检查会很有帮助。

Python 3.3.1 (default, Apr 17 2013, 22:30:32) 
[GCC 4.7.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>from PyQt5.QtCore import pyqtSignal
>>>for i in dir(pyqtSignal):
...    if i == 'emit':
...         print(True)
...
>>>

为其他人返回 true 吗?请注意,从 PyQt4 导入 QObject:

>>> from PyQt4.QtCore import QObject
>>> for i in dir(QObject):
...     if i == 'emit':
...             print(True)
... 
True
4

1 回答 1

2

pyqtSignal不是信号,它是用于创建信号的工厂函数,所以它当然没有emit属性。它只返回一个描述符,当绑定到 QObject 实例时将返回实际的信号对象。这意味着只有绑定信号才有emit方法。

QObject.emit方法是 pyqt 中引入新样式信号之前的遗留物,现在已被删除。只需使用emit绑定信号上的方法来发出它:

class SomeObject(QObject):
    someSignal = pyqtSignal(...)

instance = SomeObject()
instance.someSignal.emit(value)
于 2013-07-12T22:17:30.633 回答