Python - 使用PyQt进行线程处理

时间:2015-10-12 13:56:06

标签: python multithreading pyqt

我是关于在Python上使用线程的新手,拜托,我需要帮助。

我正在使用PyQt,当我使用循环时,主窗口将被冻结,直到循环结束。

我读到了关于python的线程,它似乎是一个解决方案,但我不知道是否使用我在我的代码上编写的线程很好。

这是我的代码示例。

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 个答案:

答案 0 :(得分:2)

您正在加入该主题。如果您希望它在后台运行,请删除行

t1.join()