在单独的Thread中运行pyQT GUI主应用程序

时间:2016-06-08 05:21:28

标签: python multithreading user-interface pyqt pyqt4

我正在尝试在已经建立的应用程序中添加PyQt GUI控制台。但是PyQt GUI会阻止整个应用程序,使其无法完成其余的工作。我尝试使用QThread,但是从mainWindow类调用。我想要的是在单独的线程中运行MainWindow应用程序。

def main()
      app = QtGui.QApplication(sys.argv)
      ex = Start_GUI()
      app.exec_()  #<---------- code blocks over here !

      #After running the GUI, continue the rest of the application task
      doThis = do_Thread("doThis")
      doThis.start()
      doThat = do_Thread("doThat")
      doThat.start()

我的应用程序已经使用了Python Threads,所以我的问题是,以线程形式实现此过程的最佳方法是什么。

1 个答案:

答案 0 :(得分:3)

这样做的一种方法是

import threading

def main()
      app = QtGui.QApplication(sys.argv)
      ex = Start_GUI()
      app.exec_()  #<---------- code blocks over here !

#After running the GUI, continue the rest of the application task

t = threading.Thread(target=main)
t.daemon = True
t.start()

doThis = do_Thread("doThis")
doThis.start()
doThat = do_Thread("doThat")
doThat.start()

这将使你的主要应用程序开始,并让你继续在下面的代码中继续你想要做的所有其他事情。