PyQt中sys.exit(app.exec_())的必要性是什么? [英] What is the necessity of sys.exit(app.exec_()) in PyQt?

查看:109
本文介绍了PyQt中sys.exit(app.exec_())的必要性是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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。非零退出代码通常用于通知调用进程发生错误。

这篇关于PyQt中sys.exit(app.exec_())的必要性是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆