sys, sys.argv和sys.exit的使用说明
- app = QApplication(sys.argv)是创建一个应用程序必不可少的,其中sys.argv表示传递给系统的参数变量,以列表的形式显示,格式为[’文件名’,’参数1’, ’参数2’,…]。
sys.exit(n)退出程序引发SystemExit, 根据状态值捕获异常,执行相应的清理工作,n默认值为0, 表示正常退出。其他都是非正常退出。
sys.exit([arg]),arg参数表示当前状态值。
sys.exit(exit_code),exit_code表示系统进程退出时对应的退出码,0——表示正常退出(我们在执行代码时,若最后一行看到一个0时,表示程序正确);非0——表示程序有错误、执行未完成或程序正在执行等。
譬如:sys.exit(app.exec_()),如果程序正常运行,无输出,正常关闭窗口,将输出退出码0。
程序触发弹出窗口实例
本实例需要程序对窗口内的QLineEdit的输入值做出判断,如果输入数值不符合要求,则弹出提示窗口。
- 实现在Eric6中新建Dialog窗口,生产ui文件,使用Qt-Designer设计窗口,然后编译窗口,生产ui对应的py文件。
和上个实例类似,我们不对ui编译生成的py文件进行修改,而是在包含判断函数的py文件中,定义一个新的子类,实现方式和“生产对话框代码”类似。代码如下:
from Ui_raw_content_error import Ui_Dialog as Dia_content_err
class Raw_content_err_Dialog(QDialog, Dia_content_err):
def __init__(self, parent=None):
super(Raw_content_err_Dialog, self).__init__(parent)
self.setupUi(self)
函数中触发弹出窗口
在函数中,当条件满足时,调用弹出窗口,代码如下:
dia_err = Raw_content_err_Dialog()
dia_err.exec_()
此处,使用.show()会闪退,.show()和.exec_()同时使用会导致弹出窗口后主窗口无法锁定,仍可操作。