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


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt窗口 | 对话框 | 创建模态及非模态对话框

文章编号:Qt 学习笔记 / 53


一、模态对话框

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. 非模态对话框

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

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

在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 16:34:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 16:34:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 16:34:07       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 16:34:07       20 阅读

热门阅读

  1. HTML美观的搜索框怎么做?

    2024-06-11 16:34:07       6 阅读
  2. A Brief History of Social Work

    2024-06-11 16:34:07       6 阅读
  3. 分享一些外贸的所见所闻

    2024-06-11 16:34:07       8 阅读
  4. Lambda架构优缺点

    2024-06-11 16:34:07       7 阅读
  5. 倒排文件的设计与实现

    2024-06-11 16:34:07       10 阅读
  6. 【AI应用探讨】— Gemma2模型应用场景

    2024-06-11 16:34:07       4 阅读
  7. 养老只是为了养老吗?

    2024-06-11 16:34:07       7 阅读