Qt窗口 | 对话框 | 创建模态及非模态对话框
一、模态对话框
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. 非模态对话框
非模态对话框的使用场景包括:
- 显示辅助信息:例如提示用户某个操作的结果或提醒用户注意事项。
- 提供额外选项:例如在程序主界面上方打开一个工具条,供用户快速访问某些功能。
- 展示进度:例如在后台执行某个操作时,可以打开一个对话框显示操作的进度和状态。