【QT】QDialog/ QMessageBox/提示对话框/颜色(文字)------对话框

QDialog—对话框

什么是对话框,如下样式

非模态对话框,即打开以后,我还可以对其他框进行操作。

在这里插入图片描述

模态对话框,打开以后,其他框都不能再操作了

在这里插入图片描述

模态对话框是阻塞对话框

QDialog dig(this);//显示模态对话框dig.exec();  //在这里阻塞了,只有被关闭,才会向下走//显示文件对话框QString name = QFileDialog::getOpenFileName(this,"打开","/home/yangyu/DailyFILE",tr("Images (*.png *.xpm *.jpg)"));qDebug()<<name.toUtf8().data();

非阻塞对话框

connect(ui->actionOpen,&QAction::triggered,this,[=](){//非模态对话框QDialog dig(this);//显示非模态对话框dig.show();     //该对话框一闪而过,如何解决//显示文件对话框QString name = QFileDialog::getOpenFileName(this,"打开","/home/yangyu/DailyFILE",tr("Images (*.png *.xpm *.jpg)"));qDebug()<<name.toUtf8().data();});
  • 该对话框一闪而过,如何解决

给该对话框new一个空间,只有程序整个关闭时才会被析构

 QDialog *dig = new QDialog(this);

在这里插入图片描述

使用QT,只需要记住常用的信号,和常用的常函数。

根据要设计功能去找那个常方法适合,然后直接拿到代码里来试,试过就知道了。

设置对话框属性

该对话框只能主窗口关闭的时候才会关闭(父类不析构,子类不析构),那么如何让他可以自己关闭呢。

方法如下:设置属性

在这里插入图片描述

在这里插入图片描述

connect(ui->actionOpen,&QAction::triggered,this,[=](){//非模态对话框QDialog *dig = new QDialog(this);//指定父对象//设置对话框属性dig->setAttribute(Qt::WA_DeleteOnClose);//显示非模态对话框dig->show();     //显示文件对话框QString name = QFileDialog::getOpenFileName(this,"打开","/home/yangyu/DailyFILE",tr("Images (*.png *.xpm *.jpg)"));qDebug()<<name.toUtf8().data();});

在这里插入图片描述

代码中这样的宏,如何去记呢

开头都是QT大头

整个对话框学习的相关代码

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QDebug>
#include <QLabel>
#include <QDialog>    //对话框类
#include <QMessageBox>//提示对话框
#include <QColorDialog>  //颜色对话框
#include <QFontDialog>   //字体对话框MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);this->setWindowIcon(QIcon(":/picture/42.jpg"));//this->setFixedSize(1000,1000);ui->dockWidget->show();QPushButton* button = new QPushButton("--v--",this);ui->statusBar->addWidget(button);  //给状态栏加控件//状态,服务器链接上小红灯图片变小绿灯(label里面只能放图片 )QLabel *label = new QLabel("未连接",this);ui->statusBar->addWidget(label);//规则    :/ui->actionSave_2->setIcon(QIcon(":/picture/45.jpg"));// ui->actionOpen->setIcon(QIcon(":/picture/43.jpg"));ui->actionClose->setIcon(QIcon(":/picture/44.jpg"));/**  // ui->Edit->addAction();//(设置菜单打开功能)打开一个对话框connect(ui->actionOpen,&QAction::triggered,this,[=](){   //打开文件通常有一个返回值                                              //过滤条件,对打开的文件进行过滤QString name =  QFileDialog::getOpenFileName(this,"打开文件","home/yangyu/",tr("Images (*.png *.xpm *.jpg)"));qDebug()<<name.toUtf8().data();//将标准utf8转换为char*类型});//模态对话框 ---打开后,其他页面不可点connect(ui->actionOpen,&QAction::triggered,this,[=](){QDialog dig(this);//显示模态对话框dig.exec();   //在这里阻塞了,只有被关闭,才会向下走//显示文件对话框QString name = QFileDialog::getOpenFileName(this,"打开","/home/yangyu/DailyFILE",tr("Images (*.png *.xpm *.jpg)"));});//非模块对话框------打开后,其他页面可点connect(ui->actionOpen,&QAction::triggered,this,[=](){//非模态对话框QDialog *dig = new QDialog(this);//指定父对象//设置对话框属性dig->setAttribute(Qt::WA_DeleteOnClose);//显示非模态对话框dig->show();     //该对话框一闪而过,如何解决----设置属性//显示文件对话框QString name = QFileDialog::getOpenFileName(this,"打开","/home/yangyu/DailyFILE",tr("Images (*.png *.xpm *.jpg)"));qDebug()<<name.toUtf8().data();});//提示对话框connect(ui->actionOpen,&QAction::triggered,this,[=](){   //打开文件通常有一个返回值//三 QMessageBox::about(this,"about","bug");//  QMessageBox::critical(this,"错误","erro,erro!",QMessageBox::Ok,QMessageBox::Cancel);// QMessageBox::information(this,"提示","举起手来",QMessageBox::Yes,QMessageBox::No);//  QMessageBox::question(this,"问题","你摊上大事了",QMessageBox::Close);if(QMessageBox::Open ==QMessageBox::warning(this,"警告","未成年禁止入内",QMessageBox::Open,QMessageBox::Close)){//显示模态对话框QDialog dig(this);dig.exec();}});//颜色对话框connect(ui->actionOpen,&QAction::triggered,this,[=](){QColor color = QColorDialog::getColor();qDebug()<<color.red()<<color.green()<<color.blue();});//字体对话框connect(ui->actionOpen,&QAction::triggered,this,[=](){bool ok;QFont font = QFontDialog::getFont(&ok, QFont("仿宋", 12), this,"字体设置");qDebug()<<font.family()<<font.italic()<<font.pointSize()<<font.bold();});
*/}
MainWindow::~MainWindow()
{delete ui;
}

QMessageBox—提示对话框

在这里插入图片描述
在这里插入图片描述


void 
about(QWidget *parent, const QString &title, const QString &text)
void 
aboutQt(QWidget *parent, const QString &title = QString())
QMessageBox::StandardButton 
critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton)
int 
critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1)
QMessageBox::StandardButton 
information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton)
QMessageBox::StandardButton 
information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1 = NoButton)
QMessageBox::StandardButton 
question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = ..., QMessageBox::StandardButton defaultButton = NoButton)
int 
question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1)
const QMetaObject 
staticMetaObject
QMessageBox::StandardButton 
warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton)
int 
warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1)

about用法

  connect(ui->actionOpen,&QAction::triggered,this,[=](){   //打开文件通常有一个返回值QMessageBox::about(this,"about","bug");});

在这里插入图片描述

critical用法

   connect(ui->actionOpen,&QAction::triggered,this,[=](){   //打开文件通常有一个返回值QMessageBox::critical(this,"错误","erro,erro!",QMessageBox::Ok,QMessageBox::Cancel);});

在这里插入图片描述

information用法

 connect(ui->actionOpen,&QAction::triggered,this,[=](){   QMessageBox::information(this,"提示","举起手来",QMessageBox::Yes,QMessageBox::No);});

在这里插入图片描述

question用法

 connect(ui->actionOpen,&QAction::triggered,this,[=](){  QMessageBox::question(this,"问题","你摊上大事了",QMessageBox::Close);});

在这里插入图片描述

warning用法

 connect(ui->actionOpen,&QAction::triggered,this,[=](){    QMessageBox::warning(this,"警告","未成年禁止入内",QMessageBox::Ok);});

在这里插入图片描述

 connect(ui->actionOpen,&QAction::triggered,this,[=](){  if(QMessageBox::Open ==QMessageBox::warning(this,"警告","未成年禁止入内",QMessageBox::Open,QMessageBox::Close)){//显示模态对话框QDialog dig(this);dig.exec();}});

在这里插入图片描述

颜色和字体对话框

#include <QColorDialog>  //颜色对话框

在这里插入图片描述

  connect(ui->actionOpen,&QAction::triggered,this,[=](){QColor color = QColorDialog::getColor();qDebug()<<color.red()<<color.green()<<color.blue();});

在这里插入图片描述

文字对话框

在这里插入图片描述

  connect(ui->actionOpen,&QAction::triggered,this,[=](){QColor color = QColorDialog::getColor();qDebug()<<color.red()<<color.green()<<color.blue();});

在这里插入图片描述

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

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

相关文章

基于redis实现用户登陆

因为session有数据共享问题&#xff0c;不同tomcat服务器中的session不能共享&#xff0c;之后负载均衡就无法实现。所以我们用redis代替session。redis可以被多个tomcat服务器共享&#xff0c;redis基于内存。 之前的session可以看做登陆凭证&#xff0c;本次登陆凭证由sessi…

App Inventor 2 Personal Image Classifier (PIC) 拓展:自行训练AI图像识别模型,开发图像识别分类App

这里仅仅介绍一下AI图像识别App的实现原理&#xff0c;AI的基础技术细节不在本文讨论范围。通过拓展即可开发出一款完全自行训练AI模型&#xff0c;用于特定识别场景的App了。 我们都知道&#xff0c;人工智能AI的基本原理是事先准备好样本数据&#xff08;这里指的是图片&…

设计高并发秒杀系统:保障稳定性与数据一致性

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一. 系统架构设计 1. 系统架构图 二、 系统流程 三…

英福康INFICON真空计VGC012-103-401使用说明

英福康INFICON真空计VGC012-103-401使用说明

基于深度学习的语音识别的未来

基于深度学习的语音识别是当前人工智能领域的研究热点之一。随着语音技术的不断发展&#xff0c;语音识别技术将在未来扮演更加重要的角色。 语音识别技术的发展已经有几十年的历史&#xff0c;但是基于深度学习的语音识别技术在近年来才取得了突破性的进展。深度学习技术可以…

01-环境搭建、SpringCloud微服务(注册发现、服务调用、网关)

环境搭建、SpringCloud微服务(注册发现、服务调用、网关) 1)课程对比 2)项目概述 2.1)能让你收获什么 2.2)项目课程大纲 2.3)项目概述 随着智能手机的普及&#xff0c;人们更加习惯于通过手机来看新闻。由于生活节奏的加快&#xff0c;很多人只能利用碎片时间来获取信息&…

【BUG】cmd运行wmic提示‘wmic‘ 不是内部或外部命令

cmd运行wmic提示‘wmic‘ 不是内部或外部命令 解决办法 将C:\Windows\System32\wbem添加到系统环境变量

electron 程序与安装包图标放大与制作

原因 electron-builder 在打包时需要最小支持到256x256像素的icon图标。原有历史图标都太小了。需要尝试将图标放大。 工具 convertio.co/zh/ico-png/ 在线ico转png网站 https://github.com/upscayl/upscayl 图片放大工具 csdn下载 greenfish-icon-editor-pro.en.softonic.c…

Flink学习4 - 富函数 + 数据重分区操作 + sink 操作(kafka、redis、jdbc)

1、富函数 - 函数类接口&#xff0c;可以获取运行环境的上下文&#xff0c;实现更复杂的功能 2、数据重分区操作 3、sink操作 sink - kafka 1、引入kafka的pom依赖 <dependency><groupId>org.apache.flink</groupId> <!--<artifactId>flink-conn…

Java基础知识点

Java基础知识点 1.方法重载和重写的区别 方法重载&#xff1a; 同一个类中的方法&#xff0c;方法名相同&#xff0c;返回值可以相同可以不同&#xff0c;参数列表必须不同发生在编译期&#xff0c;在编译期确定执行哪个方法 方法重写&#xff1a; 指的是子类重新定义父类…

【国产MCU】-CH32V307-SysTick中断与延时功能实现

SysTick中断与延时功能实现 文章目录 SysTick中断与延时功能实现1、SysTick介绍2、SysTick中断使用3、SysTick实现微秒和毫秒延时功能CH32V307的RISC-V内核控制器自带的一个64位可选递增或递减的计数器,用于产生SYSTICK异常(异常号:15),可专用于实时操作系统,为系统提供“…

LabVIEW高精度天线自动测试系统

LabVIEW高精度天线自动测试系统 系统是一个集成了LabVIEW软件的自动化天线测试平台&#xff0c;提高天线性能测试的精度与效率。系统通过远程控制测试仪表&#xff0c;实现了数据采集、方向图绘制、参数计算等功能&#xff0c;特别适用于对天线辐射特性的精确测量。 在天线的…

20 easy 70. 爬楼梯

//假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 // // 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; // // // // 示例 1&#xff1a; // // //输入&#xff1a;n 2 //输出&#xff1a;2 //解释&#xff1a;有两种方法可以爬到楼顶。 /…

uniapp H5 $el.querySelectorAll is not a function

在监听是否在可视区域遇到问题&#xff08;网页端&#xff09; 解决方案 <view class"container"> ...省略 业务代码... </view>参考 &#xff1a; https://blog.csdn.net/qq_18841969/article/details/134620559

裸机编程的几种模式、架构、缺陷

目录 裸机编程模式/架构 1&#xff1a;初始化代码的编写 裸机编程模式/架构 2&#xff1a;轮询模式 裸机编程模式/架构 3&#xff1a;轮询加中断执行模式 裸机编程模式/架构 4&#xff1a;中断定时器主循环的前后台架构 裸机编程模式/架构 5&#xff1a;前后台 状态机架构…

常见的几种echarts类型

一&#xff1a;折线图 let option {tooltip: {},animation: false,grid: {top: "20%",bottom: "33%", //也可设置left和right设置距离来控制图表的大小left: 5%,right: 5%},xAxis: {boundaryGap:false,data: [1,2,3,4,5],axisLine: {show: true, //隐藏X轴…

Leetcode : 147. 对链表进行插入排序

给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。 每次迭代中&#xff0c;插入排序只从输…

leetcode 3.5

普通数组 1.最大子数组和 最大子数组和 前缀和pre 动态规划 pre保留的是当前包含了当前遍历的最大的前缀和&#xff0c;如果之前的pre 对结果有增益效果&#xff0c;则 pre 保留并加上当前遍历, 如果pre 对结果无增益效果&#xff0c;需要舍弃&#xff0c;则 pre 直接更新为…

贝叶斯树定义与构建的寻行数墨

Title: 贝叶斯树定义与构建的寻行数墨 —— Notes for “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping” 文章目录 I. 前言II. 贝叶斯树的定义1. 贝叶斯树的背景2. 贝叶斯树的特点3. 贝叶斯树的定义 III. 贝叶斯树的构建1. 贝叶斯树的构建算法2…

CTP-API开发系列之接口对接准备

CTP-API开发系列之接口对接准备 CTP-API开发系列之接口对接准备CTP-API文件清单CTP-API通用规则命名规则Spi与Api CTP-API通讯模式开发语言选择 CTP-API开发系列之接口对接准备 CTP-API文件清单 文件名说明ThostFtdcTraderApi.h交易接口&#xff0c;C头文件&#xff0c;包括 …