我有这个代码,它工作得很好:

import sys
from PyQt4 import QtGui

def main_window():
    app = QtGui.QApplication(sys.argv)
    screen = QtGui.QDesktopWidget().screenGeometry()

    widget = QtGui.QWidget()
    widget.setWindowTitle("Center!")
    widget.setGeometry(200, 100, screen.width() - 400, screen.height() - 200)

    label = QtGui.QLabel(widget)
    label.setText("Center!")
    label.move(widget.frameGeometry().width() / 2, widget.frameGeometry().height() / 2)

    widget.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main_window()

现在在我说 sys.exit(app.exec_()) 的行中,我也可以说 app.exec_() 并且两者的工作方式相同。

那么有什么区别,为什么要写 sys.exit() 呢?

提前致谢。

最佳答案

exec() 调用启动事件循环并阻塞直到应用程序退出。如果是 exit code has been setexec() 将在事件循环终止后返回它。将此退出代码传递给 sys.exit() 是一种很好的做法——但这并不是绝对必要的。如果没有显式调用 sys.exit() ,脚本将在最后一行代码执行完毕后自动退出并显示 0 代码。通常使用非零退出码来通知调用过程发生错误。

关于python - PyQt4 中 sys.exit(app.exec_()) 的必要性是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45508090/

10-15 17:40