我有一个对象,它应该通过发出一个以新值作为参数的信号来表示一个值已经改变。值的类型可以改变,所以我不确定如何写信号类型。我知道我可以使用像这样的旧式信号来完成这个:
self.emit(SIGNAL("valueChanged(PyQt_PyObject)"), newvalue)
但是我该如何使用新式信号来编写呢?
我知道 a previous question与此相关,但没有给出“真正的”答案。
最佳答案
首先,您发射的对象需要将信号定义为其类的属性:
class SomeClass(QObject):
valueChanged = pyqtSignal(object)
请注意信号有一个类型为object 的参数,它应该允许任何东西通过。然后,您应该能够使用任何数据类型的参数从类中发出信号:
self.valueChanged.emit(anyObject)
关于python - 具有任意类型参数的 PyQt 信号/新型信号的 PyQt_PyObject 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523006/