qt QMessageBox详解

 1、概述

QMessageBox是Qt库中的一个类,它用于在图形用户界面(GUI)程序中显示消息框。消息框是一种用于向用户显示信息、警告、错误或询问用户确认的对话框。QMessageBox可以显示文本、图标和按钮,并允许自定义按钮的文本和功能。通过使用QMessageBox,开发者可以方便地创建用户友好的界面,向用户传达必要的信息或请求用户做出决策。

QMessageBox类继承自QDialog类,它提供了多种类型的消息框,包括信息框、警告框、错误框、询问框等。这些消息框可以通过不同的图标和按钮组合来区分,以适应用户的不同需求。

2、重要方法

QMessageBox类提供了多个静态方法和构造函数来创建和显示消息框。以下是一些重要的方法:

  • QMessageBox::information:用于创建一个信息对话框,通常用于向用户显示一些重要的信息或通知。
  • QMessageBox::warning:用于创建一个警告对话框,通常用于向用户显示一些警告或非严重的问题,以便用户采取适当的行动或注意。
  • QMessageBox::critical:用于创建一个临界错误对话框,通常用于向用户显示重要的错误信息并要求用户采取适当的行动。
  • QMessageBox::question:用于创建一个询问对话框,通常用于询问用户是否确认某个操作,如删除文件或退出应用程序。
  • QMessageBox::about:用于创建一个关于对话框,通常用于显示关于应用程序或某个功能的信息。

此外,QMessageBox还提供了构造函数和exec()方法,允许开发者创建自定义的消息框并显示它们。通过构造函数,可以指定对话框的父窗口、标题、文本、图标、按钮等属性。通过exec()方法,可以以模态方式显示对话框,阻塞程序的执行,直到用户关闭对话框。

3、重要按钮类型 

以下是QMessageBox类中一些常见的按钮类型及其简要介绍:

  • QMessageBox::Ok:确定按钮。
  • QMessageBox::Cancel:取消按钮。
  • QMessageBox::Yes:是按钮。
  • QMessageBox::No:否按钮。
  • QMessageBox::Retry:重试按钮。
  • QMessageBox::Ignore:忽略按钮。

4、重要图标类型

以下是QMessageBox类中一些常见的图标类型及其简要介绍:

  • QMessageBox::NoIcon:无图标。
  • QMessageBox::Information:信息图标。
  • QMessageBox::Warning:警告图标。
  • QMessageBox::Critical:错误图标。
  • QMessageBox::Question:询问标。
#include <QApplication>  
#include <QMessageBox>  
#include <QPushButton>  
#include <QWidget>  int main(int argc, char *argv[])  
{  QApplication app(argc, argv);  QWidget window;  window.setWindowTitle("QMessageBox Example");  QPushButton *infoButton = new QPushButton("Show Information", &window);  infoButton->setGeometry(50, 50, 150, 30);  QPushButton *criticalButton = new QPushButton("Show Critical Error", &window);  criticalButton->setGeometry(50, 100, 150, 30);  QObject::connect(infoButton, &QPushButton::clicked, [&]() {  QMessageBox::StandardButton button = QMessageBox::information(  &window,  "Information",  "This is an information message.",  QMessageBox::Ok | QMessageBox::Cancel,  QMessageBox::NoButton  );  if (button == QMessageBox::Ok) {  // User clicked Ok  } else if (button == QMessageBox::Cancel) {  // User clicked Cancel  }  });  QObject::connect(criticalButton, &QPushButton::clicked, [&]() {  QMessageBox::StandardButton button = QMessageBox::critical(  &window,  "Critical Error",  "An error has occurred. Please try again.",  QMessageBox::Retry | QMessageBox::Abort,  QMessageBox::NoButton  );  if (button == QMessageBox::Retry) {  // User clicked Retry  } else if (button == QMessageBox::Abort) {  // User clicked Abort  }  });  window.resize(300, 200);  window.show();  return app.exec();  
}

觉得有帮助的话,打赏一下呗。。

           

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

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

相关文章

简易版 python调用cuda方法

目标: 手写一些cuda库, 使用python调用这些库 (Linux) 步骤一: 在linux上安装pybind11 方法1: sudo apt-get install python3-pybind11 方法2: git clone https://github.com/pybind/pybind11.git, 如果将其放在项目目录下的话可以不编译 步骤二: 编写CUDA代码 示例: gpu_l…

51单片机学习心得2(基于STC89C52):串口通信(UART)

串口通信&#xff08;UART&#xff09; 电平标准 &#xff08;注意&#xff1a;单片机中常使用TTL电平&#xff09; 上图中第一种与第二种电平传输信号有效距离只有十几米&#xff0c;距离超出后会传输数据错误&#xff1b;但是第三种电平传输的有效距离可达上千米。 常用通信…

gitlab-runner中搭建nvm、nrm以及优化maven打包

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 gitlab-runner中搭建nvm、nrm以及优化maven打包 git、gitlab-runner如何以gitlab-runner执行nvm、…

一文读懂:AIOps 从自动化运维到智能化运维

今天跟大家聊一聊AIOps&#xff08;人工智能运维&#xff09; 为了应对企业面临着日益复杂的运营挑战&#xff0c;AIOps&#xff08;人工智能运维&#xff09;作为一种创新的方法应运而生&#xff0c;结合了人工智能和机器学习技术&#xff0c;来提升IT运营的效率和性能。 这…

Java反射

动态代理 java.lang.reflect.Proxy:提供了为对象产生代理的方法&#xff1a; public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) loader&#xff1a;指定用哪个类加载器&#xff0c;去加载生成的代理类。interfa…

废弃物分类分割系统:入门训练营

废弃物分类分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DCNV2-Dynamic&#xff06;yolov8-seg-C2f-DWR等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glob…

策划方案思路大公开,让你的创意更有市场!

各位营销界的脑洞大开者们&#xff0c;是不是又在为如何让你的创意在市场上大放异彩而绞尽脑汁&#xff1f; 别担心&#xff0c;今天我就来给你揭秘几个策划方案的新思路&#xff0c;让你的创意不仅有料&#xff0c;还有市场&#xff01; 一、紧跟热点&#xff0c;借势营销 …

软件著作权申请教程(超详细)(2024新版)软著申请

目录 一、注册账号与实名登记 二、材料准备 三、申请步骤 1.办理身份 2.软件申请信息 3.软件开发信息 4.软件功能与特点 5.填报完成 一、注册账号与实名登记 首先我们需要在官网里面注册一个账号&#xff0c;并且完成实名认证&#xff0c;一般是注册【个人】的身份。中…

L1G3000 提示工程(Prompt Engineering)

什么是Prompt(提示词)? Prompt是一种灵活、多样化的输入方式&#xff0c;可以用于指导大语言模型生成各种类型的内容。什么是提示工程? 提示工程是一种通过设计和调整输入(Prompts)来改善模型性能或控制其输出结果的技术。 六大基本原则: 指令要清晰提供参考内容复杂的任务拆…

【Windows】X-DOC:无需NAS使用Windows也能安装Jellyfin玩私人影音媒体平台

【Windows】X-DOC&#xff1a;无需NAS使用Windows也能安装Jellyfin玩私人影音媒体平台 1、前言2、Jellyfin服务搭建2.1 Jellyfin简介2.2 Jellyfin下载2.3 Jellyfin安装2.4 Jellyfin设置2.5 Jellyfin使用 3、终端访问3.1 浏览器访问 4、内网穿透 1、前言 下载收藏高清电影、电视…

基于C语言实现的图书管理系统

使用Visual Studio 2022编译工具进行编写代码的。 项目源码直接奉上: book1.h头文件: #ifndef __BOOK1_H //预处理用于条件编译 避免头文件反复包含 #define __BOOK1_H#include<stdio.h> #include <string.h> #include<stdlib.h> #include<stdbool.h&g…

<项目代码>YOLOv8 煤矸石识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…

[C++] cpphttplib使用https而不是http

前言 首先我们假设是直接使用 httplib.h 的源文件。 支持 https 根据readme来看&#xff0c;需要开启一个宏&#xff0c;链接libssl和libcrypto就可以了。 下载openssl 保姆级OpenSSL下载及安装教程 选择非light的版本&#xff0c;这样才会有头文件和lib库引入文件。 编写C…

基于STM32的太阳跟踪系统设计

引言 本项目基于STM32微控制器设计了一个智能太阳跟踪系统&#xff0c;通过集成光敏传感器模块和电机控制系统&#xff0c;实现太阳能电池板的自动调节&#xff0c;以保持太阳能电池板始终垂直对准太阳&#xff0c;从而最大化光能的吸收效率。该系统通过实时监测太阳光的方向&…

一:Linux学习笔记(第一阶段)-- 安装软件 vmware workstation 虚拟机软件 centos系统

目录 学习计划&#xff1a; 资源准备 虚拟机软件&#xff1a;就别自己找了 现在换网站了 下载比较费劲 Centos8&#xff1a; 阿里云镜像地址下载&#xff08;下载比较版 但是有不同版本&#xff09;&#xff1a;centos安装包下载_开源镜像站-阿里云 百度网盘地址&#xff…

代码随想录-字符串-实现strStr()--KMP

题目描述 思路:典型的数据结构中的KMP算法实现 代码与解析 假设两个字符串长度分别为m和n&#xff0c;暴力解则为O(m*n) 引入KMP算法降低时间复杂度&#xff0c;求next数组是O(m) 遍历匹配串是O(n) KMP关键思路 ①求出模式串的next数组&#xff0c;即最长公共前后缀的长度…

unity3d————叉乘练习题

代码示例&#xff1a; public class text: MonoBehaviour {public Transform A;public Transform B;private float dotResult;private Vector3 crossResult;void Update(){dotResult Vector3.Dot(A.forward, B.position - A.position);crossResult Vector3.Cross(A.forward,…

【VSCode插件推荐】想准时下班,你需要codemoss的帮助,分享AI写代码的愉快体验,附详细安装教程

在快节奏的开发环境中&#xff0c;如何高效地完成工作、提高生产力&#xff0c;成为了每位开发者的追求。今天&#xff0c;我将为大家介绍一款强大的VSCode插件——CodeMoss&#xff0c;它不仅能帮助你提高编程效率&#xff0c;还能让你享受到AI写代码的乐趣。 AI 问答&#xf…

[复健计划][紫书]Chapter 7 暴力求解法

7.1 简单枚举 例7-1 Division uva725 输入正整数n&#xff0c;按从小到大的顺序输出所有形如abcde/fghij n的表达式&#xff0c;其中a&#xff5e;j恰好为数字0&#xff5e;9的一个排列&#xff08;可以有前导0&#xff09;&#xff0c;2≤n≤79。枚举fghij&#xff0c;验证a…

【大数据技术基础 | 实验七】HBase实验:部署HBase

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤&#xff08;一&#xff09;验证Hadoop和ZooKeeper已启动&#xff08;二&#xff09;修改HBase配置文件&#xff08;三&#xff09;启动并验证HBase 六、实验结果七、实验心得 一、实验目的 掌握…