我正在为Minecraft编写一个启动器(请参阅完整代码:http://pastie.org/6633420),我知道这是一款游戏,但编程仍然很有趣.
目前,我遇到了使用QThread线程化的问题,因为所有线程似乎都应该关闭.我收到了错误:QThread: Destroyed while thread is still running.有没有办法解决这个问题,除了我之前在代码中所做的事情
for i in range(1,50):
QThread.msleep(200)
QCoreApplication.processEvents()
Run Code Online (Sandbox Code Playgroud)
因为我确定它真的很糟糕并且效果不好,因为它会导致应用程序在某些方面无响应.
这实际上是Qt的Python绑定中的一种错误.QThread在函数内部实例化(MainWidget.update_software在您的情况下)在函数返回时被垃圾收集,这导致执行在QThread: Destroyed while thread is still running消息的早期结束.
要解决此问题,有两种选择:
.wait()函数内的线程,以便线程可以在函数返回之前完成处理.这将阻止主线程,这可能不是你想要的.| 归档时间: |
|
| 查看次数: |
882 次 |
| 最近记录: |