Qt自定义样式/无边框窗口/子窗口模态/非模态问题
2016-05-18 13:57
495 查看
依旧是参考了诸多文章及帖子,最后测试总结如下:
1、只要是继承自QWidget的窗口/对象,理论上都可以设置模态/非模态
2、模态是指除了本窗口内部控件外,直接使用.exec()运行(或先设置模态setWindowModality(Qt::ApplicationModal)或setWindowModality(Qt::WindowModal),再show())则本项目的其他窗口、部件不可以操作
3、如果要弹出窗体A,且A为父窗口B的子窗口,直接使用.exec()运行时,发现除了A窗口,B窗口仍然可以操作,很多时候这不是我们要的。
想要A为模态窗口:
setWindowFlags(Qt::Window ); //标记本对象为窗口
//setWindowFlags(Qt::Window | Qt::FramelessWindowHint); //且无边框,保持最前
setWindowModality(Qt::WindowModal); //修改其为模态窗口
1、只要是继承自QWidget的窗口/对象,理论上都可以设置模态/非模态
2、模态是指除了本窗口内部控件外,直接使用.exec()运行(或先设置模态setWindowModality(Qt::ApplicationModal)或setWindowModality(Qt::WindowModal),再show())则本项目的其他窗口、部件不可以操作
3、如果要弹出窗体A,且A为父窗口B的子窗口,直接使用.exec()运行时,发现除了A窗口,B窗口仍然可以操作,很多时候这不是我们要的。
想要A为模态窗口:
setWindowFlags(Qt::Window ); //标记本对象为窗口
//setWindowFlags(Qt::Window | Qt::FramelessWindowHint); //且无边框,保持最前
setWindowModality(Qt::WindowModal); //修改其为模态窗口
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- 子窗口、父窗口和Silverlight之间的相互调用
- jquery 子窗口操作父窗口的代码
- Boostrap模态窗口的学习小结
- Qt定时器和随机数详解
- JS 模态对话框和非模态对话框操作技巧汇总
- javascript实现动态模态绑定grid过程代码
- JavaScript新窗口与子窗口传值详解
- iframe 父窗口和子窗口相互的调用方法集锦
- Qt实现图片移动实例(图文教程)
- 函数window.open实现关闭所有的子窗口
- JavaScript子窗口调用父窗口变量和函数的方法
- Qt for Android开发实例教程
- JavaScript实现弹出子窗口并传值给父窗口
- 详解AngularJS 模态对话框
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()