我遵循本教程:
http://zetcode.com/tutorials/pyqt4/firstprograms/
在第一个例子中,我不明白为什么应用程序只在命令后显示:
sys.exit(app.exec_())
另外,我稍微修改了代码以测试事物
import sys
from PyQt4 import QtGui
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
w.resize(250,150)
w.move(300,300)
w.setWindowTitle("Title")
w.show()
sys.exit(app.exec_())
如果我在终端中运行它并注释掉最后一行,它只会在运行最后一行后显示窗口。
我不太明白最后一行是做什么的。
编辑:
我也很困惑为什么没有app
和w
的引用我希望某种迹象表明w
是一个孩子或某事app
。
我在Spyder和一个IPython解释器中运行它。
答案 0 :(得分:4)
相当于
status = app.exec_() # run app, show window, wait for input
sys.exit(status) # terminate program with a status code returned from app
答案 1 :(得分:3)
最后一行是两个功能。首先它运行app.exec_()
(显示应用程序的主窗口),然后当该函数结束时,它将返回值作为参数传递给sys.exit
,它结束程序并发送返回值到操作系统(程序结束后,您可以在* nix系统上看到echo $?
)。
它没有立即退出的原因是Python无法执行sys.exit
,直到它知道参数的值,并且在app.exec_()
完成之前它不会知道。 / p>