2015-10-12 131 views
1

我是使用Python上的線程的新用戶,請在此我需要幫助。Python - 使用PyQt進行線程編程

我使用PyQt的,當我使用一個循環,主窗口被凍結,直到循環結束。

我讀到螺紋,蟒蛇,它似乎一個解決方案,但我不知道,如果使用線程的,我對我的代碼寫的井。

這是我的代碼的例子。

from Window import * 
import sys, threading 

class Window(QtGui.QDialog): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.ui = Ui_Window() 
     self.ui.setupUi(self) 
     QtCore.QObject.connect(self.ui.button_download, QtCore.SIGNAL('clicked()'), start) 

print("I'm the main thread") 

def start(): 
    t1 = threading.Thread(target=process) 
    t1.start() 
    t1.join() 

def process(): 
    for i in range(0, 1000): 
     print("I'm the thread:", i) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    myapp = Window() 
    myapp.show() 
    sys.exit(app.exec_()) 

非常感謝!!

回答

1

您即將加入該線程。如果你想要它在後臺運行,然後刪除線

t1.join() 
+0

感謝pacholik!它的工作! :) –