在我的应用程序中,我将controll类定义如下:
class Controller(QtGui.QWidget, Ui_myUI):
在按钮单击操作的这个类中,我想将QThread的finished()动作连接到done
类中定义的Controller
方法,如下所示:
def applyAction(self):
self.myTread = MyTestTread()
self.connect(self.myTread, QtCore.SIGNAL("finished()"), self.done)
self.myTread.start()
但是这段代码会返回以下错误:
AttributeError: 'Controller' object has no attribute 'connect'
我在这里做错了什么?
答案 0 :(得分:0)
您尝试使用的connect
函数是QObject的静态方法。此示例来自docs:
button = QtGui.QPushButton("Call someFunc")
QtCore.QObject.connect(button, QtCore.SIGNAL ('clicked()'), someFunc)
在我看来,您希望将applyAction
中的第二行替换为:
QtCore.QObject.connect(self.myTread, QtCore.SIGNAL("finished()"), self.done)
请注意,此语法很久以前已弃用(自Qt 4.5起)。新的方式是:
self.myTread.finished.connect(self.done)