我正在为Minecraft编写一个启动器(参见完整的代码:http://pastie.org/6633420),我知道这是一个游戏,但它的编程仍然很有趣。在
目前,我在使用QThread线程时遇到问题,因为所有线程似乎都在应该关闭之前关闭。我得到错误:QThread: Destroyed while thread is still running
。除了我之前在代码中所做的,还有什么方法可以解决这个问题吗
for i in range(1,50):
QThread.msleep(200)
QCoreApplication.processEvents()
因为我确信这是一个很糟糕的做法,而且效果不好,因为它会导致应用程序在某些时候没有响应。在
这实际上是Qt的Python绑定中的一种bug。^在函数返回时,{}在函数内部实例化(
MainWidget.update_software
)会在函数返回时被垃圾回收,这会导致执行以QThread: Destroyed while thread is still running
消息提前结束。在要解决这个问题,有两种选择:
.wait()
,这样线程就可以在函数返回之前完成处理。但是这会阻塞主线程,这可能不是您想要的。在相关问题 更多 >
编程相关推荐