1.消息对话框是什么

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

先看下面2张图——

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

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

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

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

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

QT文章推荐:Qt开发必备技术栈学习路线和资料

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
{//...
}

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

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. C#中的MessageBox消息对话框

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

  6. c#_MessageBox 消息对话框

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

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

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

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

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

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

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

最新文章

  1. c++——结构与指针 类与指针
  2. 前端学习(565):margin重叠意义
  3. spring boot 相关注解
  4. 使用ASP.NET MVC对用户组的自定义授权
  5. nginx配置不记录指定文件类型日志
  6. 【Android】实例 忐忑的精灵
  7. 由争议拼多多之货找人想到的 BlockChain Storage 之5、区块链存储 - 存储供需的智能匹配...
  8. mathtype 转换 matlab,MathType和Mathematica之间如何相互转换
  9. 简单的权限管理系统——数据库设计和实现
  10. 前端——列表、表格、表单
  11. Markdown插入网易云音乐播放模块
  12. 二进制安装K8S集群-上
  13. 博士申请 | 美国乔治梅森大学计算机系招收机器学习方向全奖博士生
  14. CentOS设置开机自动执行指定命令
  15. Enable tracemalloc to get the object allocation traceback 错误
  16. go php password_hash 加解密实现
  17. 个人账本软件---界面设计
  18. AAAI2020 A pre-training based personalized dialogue generation model with persona-sparse data
  19. JS实现curry(柯里化)的四种简单方式
  20. 思维导图哪个软件比较好?不妨试试这几款应用

热门文章

  1. 将TextBox控件调整为圆形框
  2. textbox控件输入内容限制(格式及长度)
  3. 八叉树 Octree
  4. LLVM pass pwn 入门 (4)
  5. 微软IE 10默认设置“Do Not Track” 想把Google广告搞残
  6. 【华为OD机试 2023】 最差产品奖(C++ Java JavaScript Python 100%)
  7. 【python实现网络爬虫(5)】第一个Scrapy爬虫实例项目(Scrapy原理及Scrapy爬取名言名句网站信息)
  8. open函数O_CLOEXEC作用
  9. 新能源商用车2022变局:电池能源形式的“技术革命”
  10. CSS页面布局之盒子模型