2017-06-06 44 views
0

在我的應用我已經控制研究類定義如下:Python。連接定製類的QThread

class Controller(QtGui.QWidget, Ui_myUI): 

在這個類在按鈕按下的動作我想的QThread的成品()動作連接到所定義的done方法在Controller類,如下所示:

def applyAction(self): 
    self.myTread = MyTestTread() 
    self.connect(self.myTread, QtCore.SIGNAL("finished()"), self.done) 
    self.myTread.start() 

但這代碼返回follwing錯誤:

AttributeError: 'Controller' object has no attribute 'connect' 

我在這裏做錯了什麼?

回答

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)