QT简单入门实例3【QMessageBox使用,包含消息框,警告框,错误框。实现一定延时后自行关闭功能】

2023-05-16

本文对 QMessageBox::Information, QMessageBox::Warning,QMessageBox::Critical 三种消息框进行演示。

并实现两种弹出方式:
1. 等待用户点击后关闭
2. 延时一段时间后自行关闭

效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以下是代码:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMessageBox>  //添加头文件
#include <QTime>  //添加头文件

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    void MessBox(QMessageBox::Icon messboxIcon, QString str,int ms);  //添加成员函数声明
    void delayMSec(unsigned int msec); //添加成员函数声明
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
//QT简单入门实例3【QMessageBox使用,可实现自行关闭】
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    MessBox(QMessageBox::Information,"这是一个信息框,等待用户点击后关闭",0);
    MessBox(QMessageBox::Information,"这是一个信息框,一段时间延时后关闭",1000);

    MessBox(QMessageBox::Warning,"这是一个警告框,等待用户点击后关闭",0);
    MessBox(QMessageBox::Warning,"这是一个警告框,一段时间延时后关闭",1000);

    MessBox(QMessageBox::Critical,"这是一个严重错误框,等待用户点击后关闭",0);
    MessBox(QMessageBox::Critical,"这是一个严重错误框,一段时间延时后关闭",1000);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::delayMSec(unsigned int msec)
{
    QTime Time_set = QTime::currentTime().addMSecs(msec);
    while( QTime::currentTime() < Time_set )
        QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}

void MainWindow::MessBox(QMessageBox::Icon messboxIcon, QString str, int ms)
{
    if(ms==0){
        if(messboxIcon==QMessageBox::Information)
            QMessageBox::information(this, tr("消息"),str, QMessageBox::Ok | QMessageBox::Cancel);
        else if(messboxIcon==QMessageBox::Warning)
            QMessageBox::warning(this, tr("警告"), str, QMessageBox::Ok );
        else if(messboxIcon==QMessageBox::Critical)
            QMessageBox::critical(this, tr("错误"), str, QMessageBox::Ok );
        else
            QMessageBox::question(this, tr("未知"),str, QMessageBox::Ok );
    }
    else if(ms>0){
        QMessageBox* box;
        box = new QMessageBox("Messagebox", str, messboxIcon, \
                QMessageBox::Ok | QMessageBox::Default, QMessageBox::Cancel | QMessageBox::Escape, 0);
        box->show();
        delayMSec(ms);
        box->hide();
        delete box;
    }
}

关于如何获取ok和cancel点击信号,以执行不同的后续操作,请看本系列下一篇文章:

QT简单入门实例4【QMessageBox确定和取消功能】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT简单入门实例3【QMessageBox使用,包含消息框,警告框,错误框。实现一定延时后自行关闭功能】 的相关文章

  • 【java学习】数据类型

    1 xff0c 好的编码习惯 用Integer valueOf 替代new Integer xff1b Double同理 xff1b java9已经取消了new Integer xff0c 因为效率低 数字字面量里使用下划线以方便阅读 ja
  • QPushButton的四态样式

    QPushButton的四种状态 xff1a normal hover press disabled 代码 xff1a ui gt pushButton OK gt setStyleSheet 34 QPushButton border 0
  • 解决Vue报错:This dependency was not found

    错误发生场景 xff1a 也是在其他小伙伴发出的问题 xff0c 我也试了一下 xff0c 果然是这样 ERROR Failed to compile with 1 error This dependency was not found v
  • python 如何将收到的字符串中的编码部分显示为中文

    收到一个字符串 xff0c 中间的中文是以UTF 8编码形式传过来的 xff0c 收到的数据是这样的 xff1a 34 info 34 34 u767b u5f55 u6210 u529f 34 34 status 34 1 34 url
  • C语言printf输出百分号

    在C语言中 xff0c 如何输出百分号呢 xff1f 很简单 xff0c 只要在格式控制符里输入2个 就可以了 xff0c 例如 xff1a include lt stdio h gt int main int a 61 90 printf
  • 跟我一起学【MySql】之——MySql关键字

    下面列出MySQL所有关键字 xff0c 希望给使用MySQL的朋友提供一些参考帮助 ADDALLALTERANALYZEANDASASCASENSITIVEBEFOREBETWEENBIGINTBINARYBLOBBOTHBYCALLCA
  • 跟我一起学【数据仓库】之——需要避免的维度建模错误

    1 在事实表中放入文本属性 2 限制使用冗长的描述符以节省空间 3 将层次 xff08 级联的多对一关系序列 xff09 划分为多个维度 4 忽略跟踪维度的变化 合理运用缓慢变化维度的类型 xff0c 或者微型维度 5 使用更多的硬件解决遇
  • 跟我一起学【Powerdesigner】之——导入EXCEL生成逻辑模型

    表结构如图 xff1a 中文表名 英文表名 字段编码 字段名称 字段注释 字段类型 是否主键 是否可空 主键是否自增 user1 用户信息表1 id id id int 10 Y Y Y user1 用户信息表1 name 用户名 用户名
  • SELECT语句中的for update的用法(锁的运用)

    回复1 xff1a 一般FOR UPDATE用在PL SQL的游标里 xff0c 它的作用就是一个行级锁 xff08 对游标里所有的记录 xff09 xff0c 如果其他进程要更新这个游标行级锁里的记录 xff0c 就必须等待当前进程的CO
  • IIC读取:SDA_in SDA_out寄存器设置

    IIC读取语句里的语句 xff1a uchar DAC5571 check void uchar slaveack SDA in SCL H I2C delay slaveack 61 SDA read SCL L I2C delay SD
  • 如何快速的看懂别人的代码

    最近由于公司的一位前辈 xff0c 由于家中之事欲走 xff0c 所以接手了一个公司长期再做的项目 xff0c 自己也略有了解 xff0c 知道这个项目先后经过3人之手的煅炼 xff0c 现在这个交接棒传到了我的手中 xff0c 初见代码
  • 正则表达式匹配URL或者网址

    正则表达 一 正则表达式 xff1a http ftp https w 43 w 43 43 w 64 61 amp amp 43 w 64 61 amp amp 43 匹配 xff1a http regxlib com Default a
  • Python3 logging详解

    Python3中logging详解 官方文档中 xff0c logging的5个层级 xff1a 实例代码 xff1a def logs time prov type log name 61 prov 43 39 39 43 time fi
  • python3爬虫 链接+表格+图片 思路

    左侧部门列表每点击一次都有一个新的js网页出现 xff0c Request URL可以明确看出网址 xff0c 且每个网址都有其规律 xff1a 点击了三个部门 xff0c 返回的网址如下 xff0c 可以看出是有规律的 xff0c 此处d
  • 跟我一起学MongoDB之——可视化工具Compass的简单使用

    首先官方为大家介绍了一下MongoDB Compass的主要功能 xff1a 1 对数据的可视化 2 插入 修改 删除 3 调试 优化 进入Compass首先出现连接界面如下 xff08 此处我使用的是我操作时候的界面状态 xff09 直接
  • sqluldr2 报错ora-24345: A Truncation or null fetch error occurred

    source etc profile source root bash profile unset NLS LANG sqluldr2 user 61 sjgj sjgj 64 10 254 4 196 1521 client query
  • 车牌号校验正则表达式

    一 车牌号校验规则 1 常规车牌号 xff1a 仅允许以汉字开头 xff0c 后面可录入六个字符 xff0c 由大写英文字母和阿拉伯数字组成 如 xff1a 粤B12345 2 武警车牌 xff1a 允许前两位为大写英文字母 xff0c 后
  • 日语学习资料汇总(可下载)

    直播课程推荐 xff1a 妞妞 大家的日语 侧重考级 天易外语 旧版 标准日本语 娜娜 日语讲堂 津波老师 新版标准日本语 爱知 实用日语口语 在直播课程有预告http www fairage com total jsp type 61 1
  • 成熟男人与24岁女孩精彩对白(转)

    烛光晚餐 桌两边 xff0c 坐了男人和女人 我喜欢你 女人一边摆弄着手里的酒杯 xff0c 一边淡淡的说着 我有老婆 男人摸着自己的手上的戒指 我不在乎 xff0c 我只想知道 xff0c 你的感觉 你 xff0c 喜欢我嘛 xff1f
  • jsessionid的困扰

    问题 xff1a 向某银行发送支付请求时 xff0c 如果客户端cookie开启 xff0c 第一次请求时 xff0c 请求地址会自动增加一jsessionid 第二次没有问题 如果客户端cookie关闭 xff0c 无论如何请求地址会自动

随机推荐