PySide:'PySide.QtCore.Signal'对象没有属性'emit'

qua*_*gar 2 python qt pyside

使用以下代码,我'PySide.QtCore.Signal' object has no attribute 'emit'在尝试发出信号时得到一个错误():

#!/usr/bin/env python

from PySide import QtCore

class TestSignalClass(QtCore.QObject):
    somesignal = QtCore.Signal()

    def speak_me(self):
        self.speak.emit()
    def __init__(self):
        try:
            self.somesignal.emit()
        except Exception as e:
            print("__init__:")
            print(e)

t = TestSignalClass()
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

qua*_*gar 8

这里的问题是虽然类正确继承QtCore.QObject,但它不会调用父的构造函数.这个版本工作正常:

#!/usr/bin/env python

from PySide import QtCore

class TestSignalClass(QtCore.QObject):
    somesignal = QtCore.Signal()

    def speak_me(self):
        self.speak.emit()
    def __init__(self):
        # Don't forget super(...)!
        super(TestSignalClass, self).__init__()
        try:
            self.somesignal.emit()
        except Exception as e:
            print("__init__:")
            print(e)

t = TestSignalClass()
Run Code Online (Sandbox Code Playgroud)