大家好,欢迎来到IT知识分享网。
模态对话框
阻塞同一应用程序中其它可视窗口输入的对话框;
显示模态对话框最常见的方法是调用其exec()函数:
#pragma execution_character_set("utf-8")
MainWindow *pMainWindow = new MainWindow();
pMainWindow->setWindowTitle("主界面");
pMainWindow->show();
CustomWindow *pDialog = new CustomWindow(pMainWindow);
pDialog->setWindowTitle("模式对话框");
// 关键代码,以模态方法显示对话框
pDialog->exec();
// 关闭模态对话框以后才会执行下面的代码
pMainWindow->setWindowTitle("主界面-模式对话框");
qDebug() << "关闭模态对话框以后,可以继续向下执行";
IT知识分享网
主界面被阻塞,不能进行点击、拖动等任何操作;
exec()之后的代码不会执行,直到关闭模态对话框。
非模态对话框
和同一个程序中其它窗口操作无关的对话框;
调用show()来显示非模式对话框,并立即将控制返回给调用者:
IT知识分享网#pragma execution_character_set("utf-8")
MainWindow *pMainWindow = new MainWindow();
pMainWindow->setWindowTitle("主界面");
pMainWindow->show();
CustomWindow *pDialog = new CustomWindow(pMainWindow);
pDialog->setWindowTitle("非模式对话框");
// 关键代码,以非模态的方式显示对话框
pDialog->show();
// 下面的代码会立即运行
pMainWindow->setWindowTitle("主界面-非模式对话框");
qDebug() << "立即运行";
主界面不会被阻塞,可以进行点击、拖动等任何操作;
show()之后的代码会立即执行
半模态对话框(非模态方式,界面阻塞,代码执行)
调用setModal(true)或者setWindowModality(),然后show();
#pragma execution_character_set("utf-8")
MainWindow *pMainWindow = new MainWindow();
pMainWindow->setWindowTitle("主界面");
pMainWindow->show();
CustomWindow *pDialog = new CustomWindow(pMainWindow);
pDialog->setWindowTitle("半模式对话框");
// 关键代码
pDialog->setModal(true);
pDialog->show();
// 下面的代码会立即运行
pMainWindow->setWindowTitle("主界面-半模式对话框");
qDebug() << "立即运行";
主界面被阻塞,不能进行点击、拖动等任何操作;
show()之后的代码会立即执行。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10912.html