- 博客主页:Duck Bro 博客主页
- 系列专栏:Qt 专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
Qt窗口 | 对话框 | 创建模态及非模态对话框
文章编号:Qt 学习笔记 / 53
文章目录
- Qt窗口 | 对话框 | 创建模态及非模态对话框
- 一、模态对话框
- 1. 对话框简介
- 2. 创建模态对话框
- 二、非模态对话框
- 1. 对话框简介
- 2. 创建模态对话框
- 三、两者的使用场景
- 1. 模态对话框
- 2. 非模态对话框
一、模态对话框
1. 对话框简介
模态对话框是一种在图形用户界面中常见的弹出窗口,它与其他窗口交互时会将其他窗口锁定,只有在关闭模态对话框之后才能再次操作其他窗口。模态对话框通常用于提示用户进行必要的操作或提供额外的选项,以便用户在继续执行其他操作之前确认或选择。在模态对话框中,用户通常需要完成或取消对话框中的任务或操作,才能继续与应用程序进行交互。
2. 创建模态对话框
模态对话框,显示后⽆法与父窗口进行交互,是⼀种阻塞式的对话框。使用QDialog::exec()函数调用。参考文章【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
void MainWindow::handle()
{
//创建一个对话框
Dialog * dialog = new Dialog(this);
//设置窗口的大小
dialog->resize(300,180);
//设置窗口关闭
dialog->setAttribute(Qt::WA_DeleteOnClose);
//显示窗口
dialog->exec();
}
二、非模态对话框
1. 对话框简介
非模态对话框是一种不需要阻塞用户操作的对话框。与模态对话框不同,用户可以在非模态对话框打开的同时继续对程序进行操作。这种对话框通常用于显示辅助信息、提供额外选项、展示进度等场景。非模态对话框的特点:不阻塞用户操作、可以并行打开多个对话框、弹出方式不影响主界面
2. 创建模态对话框
非模态对话框显示后独立存在,可以同时与父窗口进行交互,是⼀种非阻塞式对话框,使用
QDialog::show()函数调用。参考文章【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
void MainWindow::handle()
{
//创建一个对话框
Dialog * dialog = new Dialog(this);
//设置窗口的大小
dialog->resize(300,180);
//设置窗口关闭
dialog->setAttribute(Qt::WA_DeleteOnClose);
//显示窗口
dialog->show();
}
三、两者的使用场景
1. 模态对话框
模态对话框的使用场景包括:
- 提示用户确认操作:模态对话框可以用于提示用户确认是否执行某个操作,例如删除文件、关闭窗口等。
- 获取用户输入:模态对话框可以用于获取用户输入,例如填写表单、输入密码等。
- 显示提示信息:模态对话框可以用于显示提示信息或警告信息,例如错误提示、操作成功提示等。
- 进行选择或设置:模态对话框可以用于用户进行选择或设置,例如选择文件、选择日期、设置选项等。
- 显示详细信息:模态对话框可以用于显示详细信息或查看详细内容,例如查看文件属性、查看订单详情等。
2. 非模态对话框
非模态对话框的使用场景包括:
- 显示辅助信息:例如提示用户某个操作的结果或提醒用户注意事项。
- 提供额外选项:例如在程序主界面上方打开一个工具条,供用户快速访问某些功能。
- 展示进度:例如在后台执行某个操作时,可以打开一个对话框显示操作的进度和状态。