当前位置: 首页> 文旅> 酒店 > 【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

时间:2025/7/10 20:21:53来源:https://blog.csdn.net/m0_74014525/article/details/139596713 浏览次数:0次

  • 博客主页: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. 非模态对话框

非模态对话框的使用场景包括:

  • 显示辅助信息:例如提示用户某个操作的结果或提醒用户注意事项。
  • 提供额外选项:例如在程序主界面上方打开一个工具条,供用户快速访问某些功能。
  • 展示进度:例如在后台执行某个操作时,可以打开一个对话框显示操作的进度和状态。

在这里插入图片描述

关键字:【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: