QMessageBox手动添加按钮并绑定按钮的信号
视频展示效果(结合代码看效果更佳哦,代码在最下面):
QMessageBox手动添加有重试效果的按钮
效果图:
点击详细文本之后展开如下图:
图标可选:
QMessageBox::Critical | 错误图标 |
QMessageBox::NoIcon | 没有图标 |
QMessageBox::Question | 提问图标 |
QMessageBox::Information | 消息图标 |
QMessageBox::Warning | 警告图标 |
按钮角色可选:
QMessageBox::InvalidRole | 无效;设置之后,这个按钮不会出现在弹框里面 |
QMessageBox::AcceptRole | 确定;设置之后,对话框被接受,点击按钮后,弹窗会消失 |
QMessageBox::RejectRole | 取消;设置之后,对话框被拒绝,点击按钮后,弹窗会消失 |
QMessageBox::DestructiveRole | 不保存;设置之后,点击按钮后会导致破坏性更改并关闭弹窗 |
QMessageBox::ActionRole | 激活 |
QMessageBox::HelpRole | 帮助 |
QMessageBox::YesRole | 是 |
QMessageBox::NoRole | 否 |
QMessageBox::ApplyRole | 应用 |
QMessageBox::ResetRole | 重置 |
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QMessageBox>
#include <QPushButton>
#include <QTimer>
#include <QDialog>
#define ETIME 10//每次重试的时间
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();public slots:void slotRetry();void slotCountdown();void slotClose();void slotBtnClick(QAbstractButton* btn);private:Ui::MainWindow *ui;QMessageBox *m_mBox;QPushButton *m_retryBrn;QPushButton *m_closeBtn;QTimer *m_tmrRetry;int m_iCount;int iRetryCount;
};#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{//ui->setupUi(this);m_tmrRetry = new QTimer(this);m_tmrRetry->setInterval(1000);connect(m_tmrRetry,SIGNAL(timeout()),this,SLOT(slotCountdown()));m_mBox = new QMessageBox();m_mBox->setIcon(QMessageBox::Critical);//设置图标m_mBox->setWindowTitle("错误");//设置对话框标题m_mBox->setText("测试说明");//设置副标题m_mBox->setInformativeText("今天是个好日子");//设置提示说明//m_mBox->setDetailedText("点个关注吧");//设置详细文本m_retryBrn = new QPushButton();m_closeBtn = new QPushButton();//添加按钮的方法//..1m_retryBrn = m_mBox->addButton("重试",QMessageBox::AcceptRole);m_closeBtn = m_mBox->addButton("关闭",QMessageBox::RejectRole);//..2// m_retryBrn->setText("重试");// m_closeBtn->setText("关闭");// m_mBox->addButton(m_retryBrn,QMessageBox::AcceptRole);// m_mBox->addButton(m_closeBtn,QMessageBox::RejectRole);//_________________________________________//绑定按钮槽函数的方法//..1connect(m_mBox,SIGNAL(buttonClicked(QAbstractButton*)),this,SLOT(slotBtnClick(QAbstractButton*)));//..2connect(m_retryBrn,SIGNAL(clicked(bool)),this,SLOT(slotRetry()));//关闭弹窗后触发的信号connect(m_mBox,SIGNAL(destroyed(QObject*)),this,SLOT(slotClose()));m_mBox->show();m_iCount=0;//已经重试了几次iRetryCount=0;//总共重试几次
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::slotRetry()
{m_mBox->show();//一定要show,不然点击按钮之后,弹窗就会消失,就看不到倒计时的效果了if(m_retryBrn->isEnabled()){m_retryBrn->setEnabled(false);m_closeBtn->setEnabled(false);}iRetryCount++;if(iRetryCount>3)//最多只重试3次{qDebug() << "重试次数已试完";m_mBox->close();m_mBox->deleteLater();return;}qDebug() << "重试方式一";m_tmrRetry->start();m_retryBrn->setText(QString("重试 %1").arg(ETIME));
}void MainWindow::slotCountdown()
{m_mBox->show();m_iCount++;int iTemp = ETIME - m_iCount;if(iTemp<=0){//可以在倒计时结束后做你想做的事m_tmrRetry->stop();m_retryBrn->setEnabled(true);m_closeBtn->setEnabled(true);m_iCount=0;iTemp=ETIME;}m_retryBrn->setText(QString("重试 %1").arg(iTemp));
}void MainWindow::slotClose()
{qDebug() << "弹窗已关闭";
}void MainWindow::slotBtnClick(QAbstractButton *btn)
{if(btn == m_retryBrn){qDebug() << "重试 方法2";}else if(btn == m_closeBtn){qDebug() << "关闭 方法2";}
}
相关文章:
![](https://img-blog.csdnimg.cn/9e5615f5b3d845e49981aecd2725a917.png)
QMessageBox手动添加按钮并绑定按钮的信号
视频展示效果(结合代码看效果更佳哦,代码在最下面): QMessageBox手动添加有重试效果的按钮效果图: 点击详细文本之后展开如下图: 图标可选: QMessageBox::Critical错误图标QMessageBox::NoIco…...
![](https://img-blog.csdnimg.cn/cbc62677e1964888bf18489f0a8af369.png)
【C++进阶】位图和布隆过滤器
文章目录位图位图概念位图使用场景位图的结构构造setresettest完整代码布隆过滤器布隆过滤器概念布隆过滤器结构构造setresettest完整版代码位图 位图概念 所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用…...
![](https://img-blog.csdnimg.cn/img_convert/6a8173fec23674fdb4907097bec46cf0.png)
Android开发-Android UI与布局
01 Android UI 1.1 UI 用户界面(User Interface,简称 UI,亦称使用者界面)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。软件设计可分为两个部分:编码设计与UI设计。 1.2 Andr…...
![](https://img-blog.csdnimg.cn/a96e2c0963af429db614bfa77ca84609.png)
在不丢失数据的情况下解锁锁定的 Android 手机的 4 种方法
尽管您可以使用指纹解锁手机,但大多数智能手机都需要 PIN 码、图案或字母数字代码作为主密码。如果您有一段时间没有输入手机密码,很容易忘记。正是由于这个原因,即使您打开了指纹解锁,大多数智能手机也会让您每天至少输入一次 PI…...
![](https://img-blog.csdnimg.cn/246902c993704c13a4a211cb529d0b41.jpeg)
【11】核心易中期刊推荐——人工智能 | 图形图像处理
🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring 中的事件发布与监听
主要代码在org.springframework.context,org.springframework.context.event包中 事件发布与监听主要包含以下角色: 事件:ApplicationEvent事件监听器:ApplicationListener SmartApplicationListener GenericApplicationListene…...
![](https://www.ngui.cc/images/no-images.jpg)
c++ 一些常识 2
前言 今天主要讲类相关概念。 构造和析构函数是否可以抛出异常 在构造函数中抛出异常,控制权会转出构造函数之外,对象的析构函数不会被调用,造成内存泄漏。 如果析构函数中抛出异常,而且没有在当地捕捉,析构函数便执…...
![](https://img-blog.csdnimg.cn/img_convert/76067bdd01179bf07b143fa973ae3fc1.png)
用嘴写代码?继ChatGPT和NewBing之后,微软又开始整活了,Github Copilot X!
用嘴写代码?继ChatGPT和NewBing之后,微软又开始整活了,Github Copilot X! AI盛行的时代来临了,在这段时间,除了爆火的GPT3.5后,OpenAI发布了GPT4版本,同时微软也在Bing上开始加入了A…...
![](https://img-blog.csdnimg.cn/d09e7ef7680f4bd8a19d93c5446ed267.png)
3分钟阐述这些年我的 接口自动化测试 职业生涯经验分享
接口自动化测试学习教程地址:https://www.bilibili.com/video/BV1914y1F7Bv/ 你好,我是凡哥。 很高兴能够分享我的接口自动化测试经验和心得体会。在我目前的职业生涯中,接口自动化测试是我经常进行的一项任务。通过不断地学习和实践…...
![](https://img-blog.csdnimg.cn/e54de1837c3141a3baf04b553495bb18.png)
十大Python可视化工具,太强了
今天介绍Python当中十大可视化工具,每一个都独具特色,惊艳一方。 Matplotlib Matplotlib 是 Python 的一个绘图库,可以绘制出高质量的折线图、散点图、柱状图、条形图等等。它也是许多其他可视化库的基础。 import matplotlib.pyplot as p…...
![](https://www.ngui.cc/images/no-images.jpg)
五.ElasticSearch的基础+实战
五.ElasticSearch的基础+实战 1.Elasticsearch的是什么? 2.Elasticsearch的作用是什么? 3.Elasticsearch的核心思想? 4.Elasticsearch启动与简单使用 5.kibana结合elasticsearch实现简单的增删改查 6.elasticsearch安装中文分词器 7.elasticsearch结合springboot开发…...
![](https://img-blog.csdnimg.cn/66c1fa45025648c5ac7d627c07fec8ea.png)
Oracle的学习心得和知识总结(十三)|Oracle数据库Real Application Testing之Database Reply实操(一)
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Guid…...
![](https://img-blog.csdnimg.cn/img_convert/b1ceeb9fdf8afc9086d1106c17a4a4d8.png)
CAD外部参照如何重新定位?CAD外部参照重定位步骤
CAD外部参照如何重新定位?这个问题并不算是一个常见的问题,但偶尔也会遇到,今天小编就来给大家简单介绍一下浩辰CAD软件中CAD外部参照重定位的操作步骤,一起来看看吧! CAD外部参照重定位步骤: 浩辰CAD软件…...
![](https://www.ngui.cc/images/no-images.jpg)
11. C#高级进阶
一、C# 异常处理 在 C# 中,异常是在程序运行出错时引发的,所有异常都派生自 System.Exception 类。异常处理就是处理运行时错误的过程,通过异常处理可以使程序在发生错误时保持正常运行。 C# 中的异常处理基于四个关键字构建,分别…...
![](https://img-blog.csdnimg.cn/dcbceb65088c460e9c8d9ecfb9e5d50d.png)
网络编程套接字( TCP协议通讯流程)
目录 1、绑定失败问题 2、TCP协议通讯流程 三次握手的过程 数据传输的过程 四次挥手的过程 TCP和UDP对比 1、绑定失败问题 当我们测试网络代码时,先将服务端绑定8080端口运行,然后运行客户端,并让客户端连接当前服务器: 当有客户…...
![](https://img-blog.csdnimg.cn/e15b88a853574cf790eab90d2fca6520.gif#pic_center)
WPF毛笔字实现过程
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
![](https://img-blog.csdnimg.cn/0cc3813ad9704ef2a8e7ea701e5b4278.png)
MHA实现mysql数据库高可用
目录 MHA原理 MHA工具包 MHA实现mysql高可用实战 MHA原理 ①MHA利用 SELECT 1 As Value 指令判断master服务器的健康性,一旦master 宕机,MHA 从宕机崩溃的master保存二进制日志事件(binlog events) ②识别含有最新更新的slave ③应用差异的中继日志&…...
![](https://www.ngui.cc/images/no-images.jpg)
leetcode每日一题:55. 跳跃游戏
系列:贪心算法 语言:java 题目来源:Leetcode55. 跳跃游戏 题目 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输…...
![](https://img-blog.csdnimg.cn/img_convert/6c328ccca39fd42dfd81334dcc482366.png)
【C++】map 和 set
文章目录一、关联式容器与键值对1、关联式容器2、键值对 pair3、树形结构的关联式容器二、set1、set 的介绍2、set 的使用三、multiset四、map1、map 的介绍2、map 的使用五、multimap一、关联式容器与键值对 1、关联式容器 在C初阶的时候,我们已经接触了 STL 中的…...
![](https://img-blog.csdnimg.cn/5d68b5382da64f6f9a7c7ecf17cd75f0.png)
基于SpringBoot的酒店管理系统
系统环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/i…...
![](https://www.ngui.cc/images/no-images.jpg)
JAVA框架知识整理
框架知识整理 SpringBoot、SpringMVC、Spring的区别和他们的作用? SpringBoot是一个微服务框架,其简化了Spring应用的创建、运行、测试、部署。使开发人员无需过多的关注XML配置。里面整合了许多框架例如SpringMVC、Spring Security和Spring Data JPA。…...
![](https://img-blog.csdnimg.cn/53012b599899467d844be34dc23bc8e5.png)
运算放大器:电压比较器
目录一、单限电压比较器二、滞回电压比较器三、窗口电压比较器最近在学习电机控制,遇到了与运算放大电路相关的知识,然而太久没有接触模拟电路,对该知识已经淡忘了,及时温故而知新,做好笔记,若有错误、不足…...
![](https://img-blog.csdnimg.cn/img_convert/d05dcaa82a289072566c055d57d3816a.png)
Linux的基础知识
根目录和家目录根目录:是Linux中最底层的目录,用"/"表示家目录:当前用户所在的路径,用“~”表示,root用户的家目录和普通用户的家目录不一样,普通用户的家目录在/home路径下,每一个用…...
![](https://img-blog.csdnimg.cn/f081a4cfb4944411992ee1c1e76a0ea1.png)
【JavaEE】 IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序
目录 一、软件资源 二、放置settings.xml文件 三、创建项目 四、引入依赖 五、创建目录 六、编写代码 写在前面:☞What is Servlet? Servlet其实是一种实现动态页面的技术。是一组由Tomcat提供给程序员的API(应用程序编程接口)…...
![](https://img-blog.csdnimg.cn/e503a3f845ac42909dc9e18d21c88b20.png#pic_center)
常见的卷积神经网络结构——分类、检测和分割
本文持续更新~~ 本文整理了近些年来常见的卷积神经网络结构,涵盖了计算机视觉领域的几大基本任务:分类任务、检测任务和分割任务。对于较复杂的网络,本文只会记录其中的核心模块以及重要的网络设计思想,并不会记录完整的网络结构。…...
![](https://img-blog.csdnimg.cn/c2dd39dd99fa44f7af1025b26e15afca.png#pic_center)
20230323英语学习
Why Can You “Hear the Ocean” in Seashells? 为啥能在贝壳里“听见海的声音”? We’re told a number of stories as kids. One of the more harmless of these little lies is the one about seashells.You know the one: hold up a seashell to your ear, an…...
![](https://img-blog.csdnimg.cn/e8c47bdae4ae4ec7b47bedfea8160c30.png)
【粉丝投稿】上海某大厂的面试题,岗位是测开(25K*16)
简单介绍一句,大专出身,三年经验。跳了四次槽,面试了无数次,现在把自己的面试经验整理出来分享给大家,堪称必杀技! 1,一切从实际出发,对实际工作进行适当修饰 2,不会的简…...
![](https://www.ngui.cc/images/no-images.jpg)
shell简单使用介绍
脚本的基本元素声明,在解释并执行当前脚本文件中的语句之前,需要声明使用的命令解释器#一般写的解释器为 #!/bin/bash这里的#不再是注释了,而是必要的声明命令,也就是需要执行的语句注释,对代码进行解释说明分为单行注…...
![](https://img-blog.csdnimg.cn/b1bb225ec1f545e3bfdaab0198d5d61f.png#pic_center)
RK3568平台开发系列讲解(调试篇)内核函数调用堆栈打印方法汇总
🚀返回专栏总目录 文章目录 一、dump_stack 函数二、WARN_ON(condition)函数三、BUG_ON (condition)函数四、panic (fmt...)函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对驱动调试方法进行汇总学习。 一、dump_stack 函数 dump_stack 作用:打印内核调…...
![](https://img-blog.csdnimg.cn/8dd3cba53b804b189430745c8218ebf1.png)
一次内存泄露排查
前因: 因为测试 长时间压测导致 接口反应越来越慢,甚至 导致服务器 崩溃 排查过程 1、top 查看是 哪个进程 占用 内存过高 2、根据 进程 id 去查找 具体是哪个 程序的问题 ps -ef| grep 41356 可以看到 具体的 容器位置 排查该进程 对象存活 状态…...
![](https://img-blog.csdnimg.cn/img_convert/63eea89446e9a978508926e40a7c0a9e.png)
asp网站报错信息/西安seo排名收费
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:安全员-C证考试内容根据新安全员-C证考试大纲要求,安全生产模拟考试一点通将安全员-C证模拟考试试题进行汇编,组成一套安全员-C证全真模拟考试试题…...
![](/images/no-images.jpg)
西安网站推广/网站推广的基本手段有哪些
转载于:https://www.cnblogs.com/6DAN_HUST/archive/2013/01/18/2866932.html...
![](/images/no-images.jpg)
公司网站如何做百度收录/搭建网站的软件
Centos7安装Python3的方法由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到。输入Python命令,查看可以得知是Python2.6.6版本[rootxxx]# pythonPython 2.6.6 (r266:84292, Aug 18 2…...
![](/images/no-images.jpg)
利用模板如何制作网站/百度一下就知道百度首页
大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。第四代计算机主要采用大规模、超大规模集成电路作为基本电子元件。电子计算机(electronic computer)通称电脑,是现代一种用于高速计算的电子计算机器,可以进行…...
![](/images/no-images.jpg)
南山做棋牌网站建设/北京网站提升排名
Postgresql统计慢查询 在postgresl开启pg_stat_statements模块后,可通过下方SELECT查找出执行平均时间最长的sql SELECT query AS SQL语句 ,calls 被执行的次数 ,min_time ,max_time ,mean_time ,stddev_time ,total_time 总执行时间 ,rows AS 检索行数 ,100.0 *…...
![](https://www.chenjiayu.cn/wp-content/uploads/2020/04/1-300x212.jpg)
河南企业网站建设/百度企业查询
华为荣耀4C从EMUI3.0安卓4.4升级到4.0 安卓版本升级到6.0,荣耀畅玩4C—升级教程。测试型号是CHM-TL00H ,原系统版本是 EMUI系统3.0.安卓4.4,因为新版的微信以及其他APP很多都要求安卓5.0以上了,所以查询了网上的方法将老的华为荣耀…...