qt-11基本对话框(消息框)

news2024/11/27 6:13:09

基本对话框--消息框

  • msgboxdlg.h
  • msgboxdlg.cpp
  • main.cpp
  • 运行图
    • QustionMsg
    • InFormationMsg
    • WarningMsg
    • CriticalMsg
    • AboutMsg
    • AboutAtMsg
    • 自定义

msgboxdlg.h

#ifndef MSGBOXDLG_H
#define MSGBOXDLG_H

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QGridLayout>
#include <QMessageBox>

class msgboxdlg : public QDialog
{
    Q_OBJECT

public:
    msgboxdlg(QWidget *parent = nullptr);
    ~msgboxdlg();
private slots:
    void ShowQustionMsg();
    void ShowInFormationMsg();
    void ShowWarningMsg();
    void ShowCriticalMsg();
    void ShowAboutMsg();
    void ShowAboutAtMsg();
    void ShowCustomMsg();
private:
    QLabel* Label;
    QPushButton* QuestionBtn;
    QPushButton* InformationBtn;
    QPushButton* WarningBtn;
    QPushButton* CriticalBtn;
    QPushButton* AboutBtn;
    QPushButton* AboutQtBtn;
    QPushButton* CustomBtn;
    QGridLayout* MainLayout;

};
#endif // MSGBOXDLG_H


msgboxdlg.cpp

#include "msgboxdlg.h"

msgboxdlg::msgboxdlg(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("标准消息对话框实例"));
    //实例化控件对象
    Label = new QLabel(tr("请选择一种消息框"));
    QuestionBtn = new QPushButton(tr("QuestionMsg"));
    InformationBtn = new QPushButton(tr("InformationMsg"));
    WarningBtn = new QPushButton(tr("WarningMsg"));
    CriticalBtn = new QPushButton(tr("CriticalMsg"));
    AboutBtn = new QPushButton(tr("AboutMsg"));
    AboutQtBtn = new QPushButton(tr("AboutQtMsg"));
    CustomBtn = new QPushButton(tr("CustomMsg"));
    //布局
    MainLayout = new QGridLayout(this);
    MainLayout->addWidget(Label,0,0,1,2);
    MainLayout->addWidget(QuestionBtn,1,0);
    MainLayout->addWidget(InformationBtn,1,1);
    MainLayout->addWidget(WarningBtn,2,0);
    MainLayout->addWidget(CriticalBtn,2,1);
    MainLayout->addWidget(AboutBtn,3,0);
    MainLayout->addWidget(AboutQtBtn,3,1);
    MainLayout->addWidget(CustomBtn,4,0,1,2);

    //事件关联
    connect(QuestionBtn,SIGNAL(clicked()),this,SLOT(ShowQustionMsg()));
    connect(InformationBtn,SIGNAL(clicked()),this,SLOT(ShowInFormationMsg()));
    connect(WarningBtn,SIGNAL(clicked()),this,SLOT(ShowWarningMsg()));
    connect(CriticalBtn,SIGNAL(clicked()),this,SLOT(ShowCriticalMsg()));
    connect(AboutBtn,SIGNAL(clicked()),this,SLOT(ShowAboutMsg()));
    connect(AboutQtBtn,SIGNAL(clicked()),this,SLOT(ShowAboutAtMsg()));
    connect(CustomBtn,SIGNAL(clicked()),this,SLOT(ShowCustomMsg()));





}

msgboxdlg::~msgboxdlg() {}

void msgboxdlg::ShowQustionMsg()
{
    Label->setText(tr("Question Message box"));

    switch(QMessageBox::question(this,tr("Question 消息框"),tr("您现在已经修改完成,是否要结束程序?"),
                                  QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
    {
    case QMessageBox::Ok:
        Label->setText(tr("Question button/ok"));
        break;
    case QMessageBox::Cancel:
        Label->setText(tr("Question button/cancel"));
        break;
    default:
        break;
    }
    return;
}

void msgboxdlg::ShowInFormationMsg()
{
    Label->setText(tr("Information Message Box"));
    QMessageBox::information(this,tr("Information消息框"),tr("这是Information消息框测试,欢迎您!"));
    return;
}

void msgboxdlg::ShowWarningMsg()
{
    Label->setText(tr("warning message box"));
    switch(QMessageBox::warning(this,tr("warning 消息框"),tr("您修改的文档内容还未保存,是否要保存文档"), QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,QMessageBox::Save))
    {
    case QMessageBox::Save:
        Label->setText("Save");
        break;
    case QMessageBox::Discard:
        Label->setText("Discard");
        break;
    case QMessageBox::Cancel:
        Label->setText("Cancel");
        break;

    default:
        break;

    }

    return;

}

void msgboxdlg::ShowCriticalMsg()
{
    Label->setText(tr("Critical MessBox "));
    QMessageBox::critical(this,tr("Critical 消息框"),tr("这是一个critical 消息框"));
    return;
}

void msgboxdlg::ShowAboutMsg()
{
    Label->setText(tr("about MessBox "));
    QMessageBox::about(this,tr("about 消息框"),tr("这是一个about 消息框"));
    return;
}

void msgboxdlg::ShowAboutAtMsg()
{
    Label->setText(tr("aboutQt MessBox "));
    QMessageBox::aboutQt(this,tr("aboutQt 消息框"));
    return;
}

void msgboxdlg::ShowCustomMsg()
{
    Label->setText(tr("Custom 消息框"));
    QMessageBox CustomBox;
    CustomBox.setWindowTitle(tr("自定义消息框"));
    QPushButton* YesBtn = CustomBox.addButton(tr("yes"),QMessageBox::ActionRole);
    QPushButton* NoBtn = CustomBox.addButton(tr("No"),QMessageBox::ActionRole);
    QPushButton* Cancel = CustomBox.addButton(QMessageBox::Cancel);
    CustomBox.setText(tr("这是一个用户自定义消息框"));
    CustomBox.setIconPixmap(QPixmap("312.png"));
    CustomBox.exec();
    if(CustomBox.clickedButton() == YesBtn)
    {
       Label->setText(tr("Custom YesBtn消息"));
           return;
    }
    if(CustomBox.clickedButton() == NoBtn)
    {
        Label->setText(tr("Custom NoBtn消息"));
           return;
    }
    if(CustomBox.clickedButton() == Cancel)
    {
        Label->setText(tr("Custom Cancel消息"));
           return;
    }
    return;
}


main.cpp

#include "msgboxdlg.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    msgboxdlg w;
    w.show();
    return a.exec();
}

运行图

QustionMsg

在这里插入图片描述

InFormationMsg

在这里插入图片描述

WarningMsg

在这里插入图片描述

CriticalMsg

在这里插入图片描述

AboutMsg

在这里插入图片描述

AboutAtMsg

在这里插入图片描述

自定义

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cesium模型制作,解决Cesium加载glb/GLTF显示太黑不在中心等问题

Cesium模型制作&#xff0c;解决Cesium加载glb/GLTF显示太黑不在中心等问题 QQ可以联系这里&#xff0c;谢谢

电商搜索新纪元:大模型引领购物体验革新

随着电商行业的蓬勃发展&#xff0c;搜索技术作为连接用户与商品的桥梁&#xff0c;其重要性日益凸显。在技术不断革新的今天&#xff0c;电商搜索技术经历了哪些阶段&#xff1f;面对大模型的飞速发展&#xff0c;企业又将如何把握趋势&#xff0c;应对挑战&#xff1f;为了深…

openinstall支持抖音游戏小手柄监测,助力游戏联运生态高效增长

近来&#xff0c;抖音“小手柄”功能风靡游戏广告生态&#xff0c;通过新颖的联运形式成功将游戏广告触达到抖音整个流量池&#xff0c;由于受众较广&#xff0c;小手柄也是目前直播场数、点赞数最高的形式。 为了帮助广告主快速捕捉流量红利&#xff0c;打通抖音小手柄的数据…

【选型指南】大流量停车场和高端停车场如何选择停车场管理系统?

在当今快节奏的城市生活中&#xff0c;大型停车场和高端车场的运营者面临着一系列挑战&#xff0c;尤其是在车辆流量大和客户期望高的情况下。选择一个合适的停车场管理系统&#xff0c;不仅关系到日常运营的效率&#xff0c;更关系到客户的满意度和车场的整体形象。 捷顺科技认…

螺纹钢生产线中测径仪对基圆和负公差的测量和影响

螺纹钢生产线中测径仪的作用 在螺纹钢生产线中&#xff0c;测径仪是一种关键的检测设备&#xff0c;它负责对螺纹钢的基圆直径、横肋和纵肋等尺寸进行实时测量。测径仪的数据对于监控和控制螺纹钢的生产质量至关重要&#xff0c;尤其是在进行负公差轧制时&#xff0c;它能够提供…

K8S中使用英伟达GPU —— 筑梦之路

前提条件 根据不同的操作系统&#xff0c;安装好显卡驱动&#xff0c;并能正常识别出来显卡&#xff0c;比如如下截图&#xff1a; GPU容器创建流程 containerd --> containerd-shim--> nvidia-container-runtime --> nvidia-container-runtime-hook --> libnvid…

【Spring Boot - 注解】@ResponseBody 注解:处理 JSON 响应

文章目录 一、ResponseBody 注解概述1. 注解的功能2. 主要功能 二、ResponseBody 的工作原理1. 接口定义2. 消息转换器3. 自动配置与默认行为 三、ResponseBody 的应用场景1. RESTful API 的实现2. 返回复杂数据结构3. 错误处理和异常处理 四、ResponseBody 的配置和自定义1. 自…

Rabbit的学习——从安装到集群

一、MQ概念 1.1、异步通讯和同步通讯 1.2、同步调用和异步调用 1.2.1、同步调用 1.2.2、异步调用 1.3、消息队列的作用 1.3.1、流量削峰/限流 1.3.2、 应用解耦 1.3.3、异步处理 1.4、消息队列的两种模式 1.4.1、点对点模式 1.4.2、发布/订阅模式 二、RabbitMQ 2.1…

MyBatis Plus批量写入慢?

1. 数据库连接配置 在使用 MyBatis Plus 进行批量插入之前&#xff0c;首先需要配置数据库连接。在连接 URL 中添加 &rewriteBatchedStatementstrue&#xff0c;以提高批量插入的性能。以下是一个示例&#xff1a; spring.datasource.urljdbc:mysql://localhost:3306/your…

路径规划 | 基于改进蝙蝠算法的多无人机路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 路径规划 | 基于改进蝙蝠算法的多无人机路径规划&#xff08;Matlab&#xff09; 蝙蝠算法&#xff08;Bat Algorithm&#xff09;是一种基于自然界蝙蝠群体行为的启发式优化算法。该算法模拟了蝙蝠在寻找食物时的行为…

Linux 内核源码分析---内核ICMP协议分析

因特网控制报文协议ICMP&#xff08;Internet Control Message Protocol&#xff09; 是一个差错报告机制&#xff0c;是TCP/IP协议簇中的一个重要子协议&#xff0c;通常被IP层或更高层协议&#xff08;TCP或UDP&#xff09;使用&#xff0c;属于网络层协议&#xff0c;主要用…

论文阅读-Transformer Layers as Painters

1. 摘要 尽管大语言模型现在已经被广泛的应用于各种任务&#xff0c;但是目前对其并没有一个很好的认知。为了弄清楚删除和重组预训练模型不同层的影响&#xff0c;本文设计了一系列的实验。通过实验表明&#xff0c;预训练语言模型中的lower和final layers与中间层分布不一致…

四路一体行车记录仪,语音提示注意行人,保障车辆行驶安全

在叉车、货车、客车等行业中&#xff0c;随着运输业务量的不断增加&#xff0c;行车安全问题已经成为了一大难题。经常会发生车祸、司乘人身安全无保障、货物损失等意外情况&#xff0c;这些事件不仅会给企业带来经济损失&#xff0c;也会影响对应行业的整体形象。 如何提高运…

服装行业的利器:RFID智能吊挂分拣系统

服装行业的利器&#xff1a;RFID智能吊挂分拣系统 服装业继续走粗放型老路的利润空间越来越小&#xff0c;行业内过度竞争利润降低&#xff0c;原料价格上涨导致成本上升。企业内部生产技术创新不足、工厂生产效率低&#xff0c;导致产出不够、货期竞争乏力。企业为了盈利生存…

C++中STL的sring类常用接口及其源码解析

1. 为什么会有string类&#xff1f; C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c; 但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0…

VS2022快速搭建OLLVM

基本参考这篇文章&#xff1a; 构建含有ollvm功能的LLVM(clang-cl)供Microsoft Visual Studio 2022使用 - 哔哩哔哩 前提 已安装VS2022 1.VS开启Clang支持 我们要用自己的Clang&#xff0c;所以无需安装VS提供的clang编译器&#xff0c;而且体积太大了&#xff0c;10多个G&…

Jmeter基础与概念详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 JMeter 介绍&#xff1a; 一个非常优秀的开源的性能测试工具。 优点&#xff1a;你用着用着就会发现它的重多优点&#xff0c;当然不足点也会呈现出来。 从性能…

c++模板进阶——模板特化和模板分离编译

目录 前言&#xff1a; 1. 非类型模板参数 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3 类模板特化应用示例 3 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板的优缺点 前言&#xf…

Zotero 常用插件介绍

1. Zotero 插件安装方法 下载以 .xpi 结尾的插件&#xff1b;打开 Zotero → 工具 → 插件 → 右上小齿轮图标 → Install Add-on From File ... → 选择下载好的 .xpi 插件安装 → 重启 Zotero 2. 常用插件介绍 2.1. Scholaread - 靠岸学术 Zotero 英文文献相关插件&#xf…

Spring中使用JdbcTemplate访问数据库

首先在原来的基础上添加jar包&#xff0c;建一个测试数据库pring5&#xff0c;里边新建两个表users&#xff0c;authorities&#xff0c;user_authority&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc<…