为什么PyQt在我的Anaconda(Spyder)的窗口标题栏中显示“没有响应”?

时间:2015-10-29 06:48:23

标签: python pyqt pyqt4 anaconda

在后台运行程序后,当我执行时,我得到(在标题栏中没有响应)。

enter image description here

如果我试图关闭它会显示这个

enter image description here

关闭后,它会开始提供内核查杀消息,如右侧屏幕所示。

enter image description here

我正在运行“Anaconda-2.3.0-Windows-x86_64”。请告诉我该怎么做。

2 个答案:

答案 0 :(得分:1)

Spyder做了一些奇怪的事情,它不会在新进程中运行代码,因此它可以在上次运行代码时保留一些东西。坦率地说,我会发现这非常烦人,所以我不会使用Spyder(这意味着这个答案可能并不完美,其他人应该发布另一个更好的解决方案!)

您需要做的是检查QApplication是否已经存在,并且只有在创建时才会创建。

if QApplication.instance():
    app = QApplication.instance()
else:
    app = QApplication(sys.argv)

...

app.exec_()

我认为您应始终致电app.exec_(),无论之前是否已创建QApplication

就个人而言,我从标准的Windows命令行启动python文件,以便我始终知道它正在重新开始。

答案 1 :(得分:1)

Not Responding image

您只需要在代码末尾添加: app.exec _()

Working fine

import sys
from PyQt4 import QtGui

app =  QtGui.QApplication(sys.argv)

window = QtGui.QWidget() 
window.setGeometry(50,50,500,300)
window.setWindowTitle("PyQt Ecuador")

window.show()
app.exec_()