Python PyQt窗口构造

Python PyQt窗口构造,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,有人能给我解释一下下面两个代码示例之间的区别吗?为什么上面的那个不起作用?它执行时不会出错,但窗口不会保持打开状态 from PyQt4 import QtGui import sys app = QtGui.QApplication(sys.argv) QtGui.QMainWindow().show() app.exec_() 以及: 在QtGui.QMainWindow().show()中,您正在创建QMainWindow的对象并显示它。但是您不会将QMainWindow的实例保存在内

有人能给我解释一下下面两个代码示例之间的区别吗?为什么上面的那个不起作用?它执行时不会出错,但窗口不会保持打开状态

from PyQt4 import QtGui
import sys

app = QtGui.QApplication(sys.argv)
QtGui.QMainWindow().show()
app.exec_()
以及:

QtGui.QMainWindow().show()
中,您正在创建
QMainWindow
的对象并显示它。但是您不会将
QMainWindow
的实例保存在内存中。因此,最终python的垃圾回收会删除该实例,而您的
QMainWindow
将不再显示

在第二个代码中:
win=QtGui.QMainWindow()
QMainWindow
的对象实例保存到内存中的
win
。Python不认为这是垃圾,因为它在使用,因此你的窗口保持打开< /P>
from PyQt4 import QtGui
import sys

app = QtGui.QApplication(sys.argv)
win = QtGui.QMainWindow()
win.show()
app.exec_()