1.消息对话框是什么

消息对话框(MessageBox)提供了一个模态对话框,用来通知用户某些信息,或者用来询问用户一个问题并获得一个答复。

先看下面2张图——

第一张图是网易云音乐的界面截图,在删除歌单时,防止用户误操作,弹出了一个提示,提醒用户确认删除歌单;

第二张图是Photoshop中,用户输入的颜色值不合法之后弹出的提示框,告知用户输入的颜色值要求在000000和ffffff直接。

由此大概可以知道消息对话框有哪些作用了,它可以作为删除保护框,或提示用户某些信息等等。

在Qt中有一个QMessageBox类,功能很全面,但缺点是用户很难甚至无法在它的基础上设置自己想要的界面样式。

所以有必要自己设计一个消息对话框了。

2.设计思路

先看一下最后的界面需要做成什么样子:

一个删除保护的对话框,它包括下面几个部分:标题、关闭按钮、内容文字、确定和删除按钮。

按照使用qt做界面的一般方法,就是建立信号槽,然后点击按钮时发出信号作出响应,但是这样做有一个很大的缺点:写代码时必须要把确定或取消后的操作写到相应的槽函数里。也就是在一个函数中打开对话框,在另一个函数里进行操作,很不方便。

在Qt中QMessageBox有如下用法:

int ret = QMessageBox::warning(this, tr("My Application"),tr("The document has been modified.\n""Do you want to save your changes?"),QMessageBox::Save | QMessageBox::Discard| QMessageBox::Cancel,QMessageBox::Save);switch (ret) {case QMessageBox::Save:// Save was clickedbreak;case QMessageBox::Discard:// Don't Save was clickedbreak;case QMessageBox::Cancel:// Cancel was clickedbreak;default:// should never be reachedbreak;
}

调用静态函数打开对话框。对话框是模态的,用户点击确定或取消等按钮之后界面关闭,并获得一个返回值ret,根据返回值进行后续的操作。

3.具体实现

定义一个 静态函数 ,在静态函数中创建并显示消息对话框。

然后用 QEventLoop 使程序停止执行后面的代码。

用户点击确定或取消按钮之后退出eventloop,返回一个值并关闭对话框。

使用方法如下:

SimpleMsgBox::ButtonRole role = SimpleMsgBox::warning(this, "删除", "确定删除?");
if (role = SimpleMsgBox::Yes)
{//...
}
else
{//...
}

在此基础上,可以继续扩展,使它的功能更丰富。

the end.

转载于:https://www.cnblogs.com/hellovenus/p/5540049.html

Qt——消息对话框的设计相关推荐

  1. Qt学习:QMessageBox(消息对话框)

    一.Qt学习 1.QMessageBox(消息对话框) Ⅰ.错误对话框 QMessageBox::critical(this,"critical","错误"); ...

  2. QT各种对话框示范MessageBox消息框

    QT各种对话框示范 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 QT各种对话框demo.rar-QT文档类资源-CSDN下载QT各种对话框dem ...

  3. QT设计UI:QT模式对话框打开文件

    使用QT模式对话框,并使显示框 为背景色: 方法使用了QCheckBox *native;   #include <QCheckBox> 初始化函数代码: //设置默认打开图像位置nati ...

  4. Qt:31---QMessageBox消息对话框

    消息对话框的两种通途: ①用于简单的信息提示,并无其他所用,不利用对话框的返回值 ②用于确认选择对话框,对对话框的返回值进行利用 函数原型 由warning().information().criti ...

  5. Qt-消息对话框的设计

    1.消息对话框是什么 消息对话框(MessageBox)提供了一个模态对话框,用来通知用户某些信息,或者用来询问用户一个问题并获得一个答复. 先看下面2张图-- 第一张图是网易云音乐的界面截图,在删除 ...

  6. C#中的MessageBox消息对话框

    关键字:C# MessageBox 消息对话框 在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消 ...

  7. c#_MessageBox 消息对话框

    C# MessageBox 消息对话框 在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消息对话框 ...

  8. 文本编辑器中替换对话框的设计与实现

    文章目录 1 文本编辑器中替换对话框的设计与实现 1 文本编辑器中替换对话框的设计与实现 替换对话框需求分析: 可复用软件部分. 查找文本框中的指定字符串. 替换单个指定字符串. 替换所有指定字符串. ...

  9. Java消息系统简单设计与实现

    前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息 ...

  10. 以 B 站为例,聊聊站内消息系统的设计

    作者:guang19 使用过简书,知乎或 b 站的小伙伴应该都有这样的使用体验:当有其他用户关注我们或者私信我们的行为时,我们会收到相关的消息. 虽然这些功能看上去简单,但其背后的设计是非常复杂的,几 ...

最新文章

  1. Angular从零到一1.2 环境配置要求
  2. QThread: Destroyed while thread is still running
  3. linux内核网络协议栈--packet_type(十二)
  4. windows netstat 查看端口、进程
  5. android RSA加密
  6. python周志_Python几周学习内容小结
  7. 数论 —— 欧拉函数
  8. poj 1182 食物链的一种解法(详解),非向量法
  9. 13.SpringMVC核心技术-异常处理
  10. opencv-api moments
  11. WPF事件,路由事件
  12. 地图旋转_人类一败涂地手游:地图冰进阶攻略,团队配合与齐心协力缺一不可...
  13. chm文件打开文字排版错乱
  14. 如何安装perl模块
  15. 死链接处理,seo站长必会
  16. [视频教程]MAME画质优化hq3x
  17. 赢在中国 - 史玉柱经典语录(转载)
  18. 【2018年11月12日】其他化学制品行业的股票估值
  19. 查看 Linux 进程 巧用ps|grep命令
  20. 01 【Sass的安装使用】

热门文章

  1. Docker系列(八)Docker的CS模式、守护进程的配置和操作
  2. HDU 4455 Substrings(线性dp,很有意思)
  3. JavaScript基础笔记(十四)最佳实践
  4. 安装jenkins环境之jdk8
  5. [转]vc6如何设置Unicode字符集
  6. [转]一个程序员的奋斗历程
  7. PAT 1013 数素数
  8. 微信支付需要证书认证时报“出现了内部错误”
  9. JAVA-初步认识-第八章-数组工具类中静态的使用
  10. C ++ 的 背 影    ——C++之父Bjarne Stroustrup印象 左轻侯 2002.11.4