2024年最新Qt QMessageBox用法详解_qt message,程序人生
2401_85012262 2024-08-19 17:05:05 阅读 90
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
如果你需要这些资料,可以戳这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
已剪辑自: http://c.biancheng.net/view/vip_9658.html
QMessageBox 是 Qt 框架中常用的一个类,可以生成各式各样、各种用途的消息对话框,如图 1 所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbRMV43l-1669281066525)(http://c.biancheng.net/uploads/allimg/211028/1641194U7-0.gif)]
图 1 QMessageBox消息对话框
很多 GUI 程序都会用到消息对话框,且很多场景中使用的消息对话框是类似的,唯一的区别只是提示信息不同。为了提高程序员的开发效率,避免重复地“造轮子”,Qt 开发者设计好了几种通用的 QMessageBox 消息对话框,需要时可以直接使用。
通用的QMessageBox消息框
Qt 提供了 6 种通用的 QMessageBox 消息对话框,通过调用 QMessageBox 类中的 6 个静态成员方法,可以直接在项目中使用它们。
1) information消息对话框
information 对话框常用于给用户提示一些关键的信息,它的外观如下图所示:
图 2 information 消息对话框
在项目中使用 information 消息对话框,直接调用 QMessageBox 类中的 information() 静态成员方法即可,该方法的语法格式如下:
<code>StandardButton QMessageBox::information(QWidget *parent,
const QString &title,
const QString &text,
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton)
各个参数的含义是:
parent:指定消息对话框的父窗口,消息提示框会作为一个独立的窗口显示在父窗口的前面。消息提示框从弹出到关闭的整个过程中,用户无法操作父窗口,更不能删除父窗口;title:指定消息对话框的标题,即图 2 中的 Titile;text:指定消息对话框的具体内容,即图 2 中的 text;buttons:指定消息对话框中包含的按钮。默认情况下,消息对话框只包含一个按钮,即图 2 中显示的 “OK” 按钮。根据需要,我们可以用|
按位或运算符在消息对话框中设置多个按钮,例如 QMessageBox::Ok|QMessageBox::Cancel
;defaultButton:指定 Enter 回车键对应的按钮,用户按下回车键时就等同于按下此按钮。注意,defaultButton 参数的值必须是 buttons 中包含的按钮,当然也可以不手动指定,QMessageBox 会自动从 buttons 中选择合适的按钮作为 defaultButton 的值。
information() 函数会返回用户按下的按钮。StandardButton 是 QMessageBox 类中定义的枚举类型,每个枚举值代表一种按钮。StandardButton 类型中的值有很多,下表给大家罗列了几个常用的:
表 1 QMessageBox::StandardButton 枚举类型值 枚举值 含 义
QMessageBox::Ok | 标有 “OK” 字样的按钮,通常用来表示用户接受或同意提示框中显示的信息。 |
QMessageBox::Open | 标有 “Open” 字样的按钮。 |
QMessageBox::Save | 标有 “Save” 字样的按钮。 |
QMessageBox::Cancel | 标有 “Cancel” 字样的按钮。点击此按钮,通常表示用户拒绝接受提示框中显示的信息。 |
QMessageBox::Close | 标有 “Close” 字样的按钮。 |
QMessageBox::Discard | 标有 “Discard” 或者 “Don’t Save” 字样的按钮,取决于运行平台。 |
QMessageBox::Apply | 标有 “Apply” 字样的按钮。 |
QMessageBox::Reset | 标有 “Reset” 字样的按钮。 |
QMessageBox::Yes | 标有 “Yes” 字样的按钮。 |
QMessageBox::No | 标有 “No” 字样的按钮。 |
例如,使用 information() 函数实现图 2 所示的对话框,实现代码为:
QMessageBox::StandardButton result = QMessageBox::information(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 information 对话框会显示在 widget 窗口的前面。通过用 result 接收 information() 函数的返回值,我们可以得知用户选择的是哪个按钮。
2) critical消息对话框
critical 消息对话框常用于给用户提示“操作错误”或“运行失败”的信息,它的外观如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9juiThYV-1669281066562)(http://c.biancheng.net/uploads/allimg/211028/1641195425-2.gif)]
图 3 critical 消息对话框
项目中使用 critical 消息对话框,直接调用 QMessageBox 类提供的 critical() 静态成员方法即可,该方法的语法格式为:
StandardButton QMessageBox::critical(QWidget *parent,
const QString &title,
const QString &text,
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton)
各个参数的含义以及返回值的含义,都与 information() 函数相同,这里不再重复赘述。
例如,使用 critical() 函数实现图 3 所示的对话框,实现代码为:
QMessageBox::StandardButton result=QMessageBox::critical(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 critical 对话框会显示在 widget 窗口的前面。
3) question消息对话框
question 对话框常用于向用户提出问题并接收用户的答案,它的外观如下图所示:
图 4 question消息对话框
项目中使用 question 对话框,可以直接调用 QMessageBox 类的 question() 静态成员方法,该方法的语法格式为:
<code>StandardButton QMessageBox::question(QWidget *parent,
const QString &title,
const QString &text,
StandardButtons buttons = StandardButtons( Yes | No ),
StandardButton defaultButton = NoButton)
各个参数的含义以及返回值的含义,都与 information() 函数相同。
例如,使用 question() 函数实现图 4 所示的对话框,实现代码为:
QMessageBox::StandardButton result=QMessageBox::question(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 question 对话框会显示在 widget 窗口的前面。
4) warning消息对话框
warining 对话框常用于向用户显示一些警告信息,它的外观如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ZVOhUXS-1669281066564)(http://c.biancheng.net/uploads/allimg/211028/16411a1O-4.gif)]
图 5 warning消息对话框
项目中使用 warning 对话框,可以直接调用 QMessageBox 类的 warning() 静态成员方法,该方法的语法格式为:
StandardButton QMessageBox::warning(QWidget *parent,
const QString &title,
const QString &text,
StandardButtons buttons = Ok,
StandardButton defaultButton = NoButton)
各个参数的含义以及返回值的含义,都与 information() 函数相同。
例如,使用 warning() 函数实现图 5 所示的对话框,实现代码为:
QMessageBox::StandardButton result=QMessageBox::warning(&widget, "Title","text");
其中,widget 是我们创建好的 QWidget 窗口,创建好的 warning 对话框会显示在 widget 窗口的前面。
5) about和aboutQt对话框
about 对话框常常作为介绍某个产品或某项功能的临时窗口,它的外观如下图所示:
图 6 about消息对话框
注意,about 对话框没有固定的图标,它显示的图标可能来自父窗口、包含父窗口的顶层窗口等,也可能使用和 information 对话框相同的图标。
项目中使用 about 对话框,直接调用 QMessageBox 类提供的 about() 静态成员方法即可,该方法的语法格式如下:
void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)
各个参数的含义和与 information() 函数相同。和前面的几种对话框不同,about对话框中只包含一个默认的 Ok 按钮,且 about() 函数没有返回值。
aboutQt 可以看做是 about 对话框的一个具体实例,它只能显示 Qt 的介绍信息,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UpQ87vv1-1669281066567)(http://c.biancheng.net/uploads/allimg/211028/1641196461-6.gif)]
图 7 aboutQt对话框
项目中使用 aboutQt 对话框,直接调用 QMessageBox 类提供的 aboutQt() 静态成员方法即可,该函数的语法格式如下:
void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
如果你需要这些资料,可以戳这里获取
图片转存中…(img-CakV8zKN-1715641162729)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
如果你需要这些资料,可以戳这里获取
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。