qt学习:QMessageBox消息对话框+自定义对话框

2024-01-11 07:36

本文主要是介绍qt学习:QMessageBox消息对话框+自定义对话框,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

概念

头文件

使用基于属性的api实现消息对话框

简单实现

复杂实现

使用静态函数成员实现

自定义对话框

以模态的方法调用自定义对话框

以非模态的方式调用自定义对话框


概念

当程序在运行过程中,希望给用户一些提示作用,可以用消息对话框来实现

头文件

#include <QMessageBox>
#include <QDebug>

使用基于属性的api实现消息对话框

简单实现

//创建一个消息对话框对象
QMessageBox msgBox;
//设置消息对话框的文本
msgBox.setText(QString::fromLocal8Bit("我是消息对话框,请选择确定!"));
//以模态的方式显示消息对话框
msgBox.exec();

复杂实现

//1、创建一个消息对话框类的对象
QMessageBox msgBox;
//2、设置消息对话框的显示文本
msgBox.setText(QString::fromLocal8Bit("这是一个消息对话框....."));
//3、设置信息文本
msgBox.setInformativeText("Do you want to save your changes?");
//4、设置消息对话框的按钮
msgBox.setStandardButtons(QMessageBox::Save|QMessageBox::Discard |QMessageBox::Cancel);
//5、设置默认的按钮
msgBox.setDefaultButton(QMessageBox::Save);
//6、设置详情按钮和详情信息文本
msgBox.setDetailedText("Detailed....show");
//7、设置预定义的图标  设置消息的严重级别
msgBox.setIcon(QMessageBox::Question);
//8、显示 以模态的方式运行
int ret = msgBox.exec();
//判断返回值是哪个按钮
switch (ret) 
{case QMessageBox::Save:qDebug()<<"Save was clicked";break;case QMessageBox::Discard:qDebug()<<"Don't Save was clicked";break;case QMessageBox::Cancel:qDebug()<<”Cancel was clicked";break;default:qDebug()<<"should never be reached";break;
}

使用静态函数成员实现

//通过调用静态函数实现 对话框的调用
QString text = QString::fromLocal8Bit("这是一个消息对话框.....");
QString msg  = QString::fmomLocal8Bit("信息文本....");
int ret = QMessageBox::warning
(this,//传递父窗口的对象指针text,//对话框的标题 tr是国际标准msg,//对话框的信息文本QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,//对话框的按钮QMessageBox::Save//默认按钮
); switch (ret) 
{case QMessageBox::Save:qDebug()<<"Save was clicked";break;case QMessageBox::Discard:qDebug()<<"Don't Save was clicked";break;case QMessageBox::Cancel:qDebug()<<”Cancel was clicked";break;default:qDebug()<<"should never be reached";break;
}

自定义对话框

点击项目,右键,选择add new...,左边选择Qt,中间选择Qt设计师界面类,点击下一步,三个选一个

再点击下一步,修改类名 

以模态的方法调用自定义对话框

    //新建一个MsgDialog类的自定义对话框//创建一个自定义对话框对象MsgDialog *msg = new MsgDialog;//设置当对话框关闭的时候 自动销毁msg->setAttribute(Qt::WA_DeleteOnClose);//以模态的方式显示对话框,必须关闭对话框才可以返回主窗口//关闭对话框后获取返回值int ret = msg->exec();//判断ret返回值是确定还是取消switch (ret) {case QDialog::Accepted:qDebug()<<"QDialog::Accepted”break;case QDialog::Rejected:qDebug()<<"QDialog::Rejected"break;}delete msg;

以非模态的方式调用自定义对话框

//新建一个MsgDialog类的自定义对话框
//创建一个自定义对话框对象
MsgDialog *msgDiglog = new MsgDialog;
//对话框关闭时 会自动销毁对象
msgDiglog->setAttribute(Qt::WA_DeleteOnClose);
//非模态显示对话框
msgDiglog->show();

这篇关于qt学习:QMessageBox消息对话框+自定义对话框的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593609

相关文章

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

使用C/C++调用libcurl调试消息的方式

《使用C/C++调用libcurl调试消息的方式》在使用C/C++调用libcurl进行HTTP请求时,有时我们需要查看请求的/应答消息的内容(包括请求头和请求体)以方便调试,libcurl提供了多种... 目录1. libcurl 调试工具简介2. 输出请求消息使用 CURLOPT_VERBOSE使用 C

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho