【发布时间】:2014-05-13 22:29:19
【问题描述】:
我目前在启动我的 qt 应用程序时尝试在 python 中生成线程时遇到问题。这段代码的想法是生成一个 Python 线程,该线程将在一个函数上循环,然后初始化我的 QT 应用程序。
import sys
from PyQt4 import QtGui
from pyui import DirectGui
from engines import KCluster_Engine
from threading import Thread
def main():
app = QtGui.QApplication(sys.argv)
dgui = DirectGui()
engine = KCluster_Engine(4, 5)
dgui.set_engine_ref(engine)
engine.assign_interface(dgui)
thread = Thread(target = engine.start())
thread.start()
sys.exit(app.exec_())
thread.join()
if __name__ == '__main__':
main()
这背后的问题是我无法使用我的 Qt GUI。我的 mac 给了我一个色轮,表明我生成的线程正在旋转,它应该这样做,但我不能使用我的 QtApplication。
我的线程在一段时间循环中故意旋转,它只应该在 GUI 上的某些操作完成后触发,但我无法与我的 GUI 交互,因为 mac 色轮(旋转的死亡沙滩球)是阻止我这样做。
但也可以想象一个 mac 色轮光标(旋转的死亡沙滩球),屏幕截图没有捕捉到它。
【问题讨论】:
-
请注意,
thread.join()永远不会被调用,因为您的程序将在app.exec_()循环完成后立即退出。
标签: python multithreading macos qt pyqt