QT 非模式对话框和模式对话框
重点讲述模式对话框,以及exec()的用法,accept()和accepted的概念。
一、非模式对话框
非模式对话框是和同一个程序中其它窗口操作无关的对话框。
调用show()来显示非模式对话框。show()立即返回,这样调用代码中的控制流将会继续。
非模式对话框,说白了,就像你打开了好几个QQ聊天窗口,每个聊天窗口都是一个非模式对话框,想和谁聊和谁聊,只要点击那个窗口就可以输入聊天信息进行发送了。
二、模式对话框
模式对话框就是阻塞同一应用程序中其它可视窗口的输入的对话框:用户必须完成这个对话框中的交互操作并且关闭了它之后才能访问应用程序中的其它任何窗口。
用来让用户选择一个文件或者用来设置应用程序参数的对话框通常是模式的。
调用exec()来显示模式对话框。当用户关闭这个对话框,exec()将提供一个可用的返回值并且这时流程控制继续从调用exec()的地方进行。
通常,我们连接默认按钮,例如“OK”到accept()槽并且把“Cancel”连接到reject()槽,来使对话框关闭并且返回适当的值。另外我们也可以连接done()槽,传递给它Accepted或Rejected。
accept()的作用是:将当前的窗口隐藏(这样就做到子窗口功能消失这个功能),并且发送accepted信号,也就是设置设置结果代码为Accepted。
QDialog的accept()函数和reject()函数
这两个函数作用分别是:都能够隐藏QDialog,但是返回值不同,一个是Accepted,一个是Rejected,
返回值不同的作用是:区分用户按下的OK按钮,还是Cancel按钮。

浙公网安备 33010602011771号