介绍
模态对话框的特点
- 对话框对象是置顶的、独立的、垄断的,会把用户的输入焦点抢走
- 用户只能操作、响应这个对话框,完成必要的交互之后才能退出
- 只能使用特定的接口才能退出模态页面
使用
什么情况下时候用Dialog / QDialog
这样的模态对话框?
- 升级管理:成功、失败、进行中
- WiFi、蓝牙、4G、串口等配置管理界面
- 提示框(错误、警告、结果)
- 文件管理器也可以
- 自定义参数配置表
- 关于页面
- 密码设置
- 输入法键盘可以是一个模态对话框
什么时候不能用模态对话框?
- 主界面
- 生存周期为全局的页面不推荐使用模态
- 状态刷新控件
- 嵌套在父控件里边的控件
模态对话框使用要点?
- 嵌入式触摸平台大都需要重新实现顶部标题栏样式:
标题
+长方形背景
+退出按钮
,因为自带样式实在太丑了 - show和exec两个函数的样式不一致,特别是show的样式容易被父控件污染,模态属性下样式独立于父控件
- 尽量避免使用static成员变量,但可以传递参数,如果你想使用把对话框对象当作局部变量来使用
- 和Qt定制输入法有冲突,需要改变窗体属性来唤起输入法界面
- 巧用reject(叉掉)和accept(确定),什么都不知道就close(对话框之外的点击)
- 尽量用QML(Dialog)吧,对触摸友好一些