QT中的模态和非模态对话框
模态对话框就是在我们没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互,比如新建项目时弹出的对话框。要想使一个对话框成为模态对话框,只需要调用它的exec()函数:
QDialog dialog(this);
dialog.exec();
而对于非模态对话框,既可以与它交互,也可以与同一程序中的其他窗口交互,例如Microsoft Word中的查找替换对话框。要使一个对话框成为非模态对话框,我们就可以使用new操作来创建,然后使用show()函数来显示。
QDialog *dialog = new QDialog(this);
dialog->show();
使用show()函数也可以建立模态对话框,只需在其前面使用setModal()函数即可。例如:
QDialog *dialog = new QDialog(this);
dialog->setModal(true);
dialog->show();
现在运行程序,可以看到生成的对话框是模态的。但是,它与用exec()函数时的效果是不一样的。这是因为调用完show()函数后会立即将控制权交给调用者,那么程序可以继续往下执行。而调用exec()函数却不是这样,它只有当对话框被关闭时才会返回。
与setModal()函数相似的还有一个setWindowModality()函数,它有一个参数来设置模态对话框要阻塞的窗口类型,可以是:
- Qt::NonModal(不阻塞任何窗口,就是非模态)
- Qt::WindowModal(阻塞它的父窗口和所有祖先窗口以及它们的子窗口)
- Qt::ApplicationModal(阻塞整个应用程序的所有窗口)
而setModal()函数默认设置的是Qt::ApplicationModal
。
QT中的模态和非模态对话框相关推荐
- Qt下的模态和非模态对话框
模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等. 所谓模态对话框就是在 ...
- Qt -- 19模态和非模态对话框
什么是模态和非模态对话框 点不了其他的功能和界面.这种对话框就称为模态对话框.还有一些能够操作其他的窗口属于非模态对话框. 下面新建一个工程,新建好之后,在设计界面中搭建如下图所示窗体(1.在菜单项中 ...
- Qt 模态和非模态窗口的创建与关闭
首先应该明确的是,不仅仅Qt中包含模态窗口和非模态窗口,任何一个窗口界面开发的工具都应该具备此项功能. 模态窗口最简单的理解是在模态窗口打开之后,用户只能与这个窗口进行交互,而在其关闭之前不能与其他窗 ...
- C++MFC基于对话框的编程——模态(非模态)对话框
目录 一.添加MFC功能 二.创建基于MFC的应用程序框架 三.初识界面 四.上案例 1.拖控件button(两个) 2.改控件名字 2.1改名方法1 2.2改名方法2 3.添加两个新的对话框(Dia ...
- VC显示\关闭\销毁模态与非模态对话框技巧
VC显示,关闭,销毁模态与非模态对话框技巧 显示对话框 显示模式对话框 CDialogDemo dlg; dlg.DoModal(); 显示非模式对话框 CDialogDemo *dlg=new CD ...
- JavaScrip高级应用:操作模态与非模态对话框
JavaScrip高级应用:操作模态与非模态对话框 本文出自:http://www.computerworld.com.cn 作者: 甘冀平 (2002-01-29 20:41:38) 我们知道, ...
- java 非模态_JavaScrip高级应用:操作模态与非模态对话框
http://www.computerworld.com.cn 作者: 甘冀平 (2002-01-29 20:41:38) 我们知道,对话框一般分为两种类型:模态类型(modal)与非模态类型(mod ...
- PyQt4编程之模态与非模态对话框(一)
模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应.如单击[确定]或[取消]按钮等将该对话框关闭.---- ...
- win32模态与非模态对话框
win32模态与非模态对话框 一.模态对话框与非模态对话框的区别 二.模拟实现模态窗口 1. 非阻塞的方式实现窗口的模态 2. 阻塞的方式实现窗口的模态 一.模态对话框与非模态对话框的区别 使用Dia ...
- Win32_SDK_非模态对话框(非模态对话框窗口的销毁,模态与非模态对比,计算器项目练习)
文章目录 1. 模态对话框与非模态对话框对比 2. 计算器项目练习模态与非模态对话框 3. 代码位置 1. 模态对话框与非模态对话框对比 模态对话框是通过DialogBox函数生成窗口,且函数的返回值 ...
最新文章
- 网格的铺设问题——骨牌
- ApplicationStartedEvent 与 ContextStartedEvent 有区别吗?
- img引Linux的绝对路径,什么是绝对路径和相对路径
- c++删除容器中的奇数
- MACD 的数学解释
- 2022年跨境品牌出海新玩法策略:Tiktok+速卖通平台运营必不可少
- 计算机组成原理中7421,计算机组成原理07421
- mysql从表截取信息_mysql中循环截取用户信息并插入到目标表对应的字段中
- 2017.3.8 太空飞行计划问题 失败总结
- 自学前端开发,前端进阶阶段需要学习哪些知识?
- 为什么你很努力,进步却很慢?
- hive中的集合操作函数
- 新手程序员必学的代码编程技巧
- 微信小程序地图生态概述
- Linux挖矿病毒查杀
- 为什么要使用dubbo
- 搜索战火重燃,夸克升级个人云服务做网盘的逻辑是什么?
- linux中vim保存快捷键设置,Linux中vim操作快捷键非常简洁
- jquery+easyui培训文档
- 提供一些网上webservice的WSDL地址
热门文章
- PyTorch深度学习-跟着小土堆学习
- 如何查看apk安装包源代码??Android反编译apk,解包,打包,签名一体化实测 ,修改图片音频软件名称版本号等入门
- Shiro学习(6)Realm整合
- 声源近场与远场定位及方法
- 报错:Error: module property was removed from Dependency
- vue项目上传图片的方法
- register at least one qt version using“qt vs tools“->“qt options“
- 超级详细解析——字模
- 实现用户名、邮箱、手机号三种都可以登录
- (转)Android单元测试