lv20 QT对话框3

1 内置对话框

标准对话框样式

内置对话框基类        

QColorDialog,
QErrorMessage
QFileDialog
QFontDialog
QInputDialog
QMessageBox
QProgressDialog

QDialog Class帮助文档 

示例:各按钮激发对话框实现基类提供的各效果

第一步:实现组件布局()

第二步:实现信号与槽函数

 文件静态成员方法 

打印实现使用qdebug

代码:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPushButton>
#include <QTextEdit>#include<QColorDialog>
#include<QErrorMessage>
#include<QFileDialog>
#include<QFontDialog>
#include<QInputDialog>
#include<QMessageBox>
#include<QProgressDialog>#include <QDebug>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
public slots:void setcolorf(){QColor c =  QColorDialog::getColor();te->setTextColor(c);}void showerr(){QErrorMessage *msg = QErrorMessage::qtHandler();msg->showMessage("EEEEEEEE");}void getfile(){QString filename = QFileDialog::getOpenFileName();qDebug()<<filename;    //qt中打印方法te->setText(filename);}void setfont(){bool ok;QFont myfont = QFontDialog::getFont(&ok);if(ok)te->setFont(myfont);}void getstr(){QString str =  QInputDialog::getText(this, "xxxx","yyyyy");te->setText(str);}void showmsg(){QMessageBox::information(this, "vvvv", "hello", "AAA");}void showprogress(){QProgressDialog p;p.setValue(50);p.exec();}private:QPushButton *btcolor;QPushButton *bterrm;QPushButton *btfile;QPushButton *btfont;QPushButton *btinput;QPushButton *btmsg;QPushButton *btprg;QTextEdit *te;};#endif // WIDGET_H
#include "widget.h"
#include "QVBoxLayout"
#include "QHBoxLayout"Widget::Widget(QWidget *parent): QWidget(parent)
{btcolor = new QPushButton("setcolor");bterrm = new QPushButton("errmsg");btfile = new QPushButton("getfile");btfont = new QPushButton("setfont");btinput = new QPushButton("getstr");btmsg = new QPushButton("msg");btprg = new QPushButton("progress");te = new QTextEdit;QVBoxLayout *vbox = new QVBoxLayout;vbox->addWidget(btcolor);vbox->addWidget(bterrm);vbox->addWidget(btfile);vbox->addWidget(btfont);vbox->addWidget(btinput);vbox->addWidget(btmsg);vbox->addWidget(btprg);QHBoxLayout *mainbox = new QHBoxLayout;mainbox->addLayout(vbox);mainbox->addWidget(te);this->setLayout(mainbox);connect(btcolor, SIGNAL(clicked(bool)), this, SLOT(setcolorf()));connect(bterrm, SIGNAL(clicked(bool)), this, SLOT(showerr()));connect(btfile, SIGNAL(clicked(bool)), this, SLOT(getfile()));connect(btfont, SIGNAL(clicked(bool)), this, SLOT(setfont()));connect(btinput, SIGNAL(clicked(bool)), this, SLOT(getstr()));connect(btmsg, SIGNAL(clicked(bool)), this, SLOT(showmsg()));connect(btprg, SIGNAL(clicked(bool)), this, SLOT(showprogress()));}Widget::~Widget()
{}

2 自定义对话框 

现象:模态显示,前面不关后面不关,小框可以卡其后面的态

有时候对于弹出对话框可以点确定关闭,可以点X全部关闭,那么这时候需要实现自定义对话框 

 添加新文件,添加C++

文件添加 姓名,基类

生成myQdialog的cpp和.h文件,需要用到信号与槽,Q_OBJEC

myqdialog.h

#ifndef MYQDIALOG_H
#define MYQDIALOG_H#include <QDialog>
#include <QLineEdit>
#include <QPushButton>class myQDialog : public QDialog
{Q_OBJECT
public:myQDialog();public slots:void ok_pushed(){stat = true;close();}public:static int getstat(){myQDialog a;a.exec();return a.stat;}private:QLineEdit *le;QPushButton *pb;int stat;
};#endif // MYQDIALOG_H

myqdialog.cpp

#include "myqdialog.h"
#include <QVBoxLayout>myQDialog::myQDialog()
{le = new QLineEdit("aaaaaa");pb = new QPushButton("OK");QVBoxLayout *vbox = new QVBoxLayout;vbox->addWidget(le);vbox->addWidget(pb);setLayout(vbox);stat = false;connect(pb, SIGNAL(clicked(bool)), this, SLOT(ok_pushed()));
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
};#endif // WIDGET_H

 widget.cpp

#include "widget.h"
#include <QWidget>
#include <QDialog>
#include "myqdialog.h"Widget::Widget(QWidget *parent): QWidget(parent)
{
#if 0myQDialog a;a.setFixedSize(100, 100);a.exec();if(!a.stat)exit(0);#endifint s = myQDialog::getstat();if(!s)exit(0);
}Widget::~Widget()
{}

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

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

相关文章

Pyhton的组合数据类型

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 生命对某些人来说是美丽的&#xff0c…

尝鲜18倍速大模型Groq和世界第二AI Mistral(Le Chat)

01 尝鲜 中午,一边吃饭,一边尝试一下最新的AI:Groq,它使用了重新设计的LPU,据说比英伟达的GPU快了18倍。 运行了开源的Mixtral-8x7b模型,屏幕上的文字回复几乎是瞬间的,那种速度感,让人心跳加速。 接着,我尝试了来自欧洲的新贵——Mistral AI的Le Chat。 这个三天前…

python学习笔记-内置异常

概述 Python 中的异常&#xff08;Exception&#xff09;是指在程序执行过程中遇到的错误或异常情况。当程序出现异常时&#xff0c;解释器会停止当前代码的执行&#xff0c;并试图找到匹配的异常处理器来处理异常。如果没有找到合适的异常处理器&#xff0c;程序就会终止并打…

go并发模式之----阻塞/屏障模式

常见模式之一&#xff1a;阻塞/屏障模式 定义 顾名思义&#xff0c;就是阻塞等待所有goroutine&#xff0c;直到所有goroutine完成&#xff0c;聚合所有结果 使用场景 多个网络请求&#xff0c;聚合结果 大任务拆分成多个子任务&#xff0c;聚合结果 示例 package main ​…

配电房轨道式巡检机器人方案

一、应用背景 在变电站、配电房、开关站等各种室内变配电场所内&#xff0c;由于变配电设备的数量众多、可能存在各类安全隐患&#xff0c;为了保证用电的安全可靠&#xff0c;都要进行日常巡检。 但目前配电房人工巡检方式有以下主要问题&#xff1a; 巡检工作量大、成本高 …

关于StartAI本地部署相关问题解答

很多小伙伴们都有接入自己本地SD的需求&#xff0c;对此小编整理了一些相关问题~ 一、本地部署相关条件 对于想要本地部署的小伙伴要了解&#xff0c;相对于使用StartAI试用引擎本地部署更加考验电脑硬件配置备噢~ 流畅使用要nvidia显卡&#xff0c;6g以上显存&#xff08;最…

图解知识蒸馏

soft labels与soft predictions越接近越好&#xff0c;通过Loss Fn来实现&#xff0c;产生的数值叫做distillation loss&#xff0c;也叫soft loss。 hard label y与hard prediction越接近越好&#xff0c;通过Loss Fn来实现&#xff0c;产生的数值叫做student loss&#xff0c…

什么是VR虚拟现实元宇宙|VR设备购买|VR设备零售店

VR&#xff08;Virtual Reality&#xff0c;虚拟现实&#xff09;元宇宙是指基于虚拟现实技术构建的一个虚拟世界&#xff0c;这个世界可以模拟现实世界或者超出现实世界的一切事物和活动。在这个虚拟世界里&#xff0c;用户可以通过虚拟现实设备&#xff08;如头戴式显示器、手…

本地搭建xss平台并获取cookie演练

前言 一般而言&#xff0c;搭建xss平台是不被允许的&#xff0c;但是由于教育的目的&#xff0c;搭建xss平台更能让学习者更加直观感受xss漏洞对我们的危害和它的重要性。 搭建xss平台 1.搭建xss平台的基础是在phpstudy一个集成环境上的&#xff0c;所有第一步要安装phpstudy&a…

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境&#xff08;gethub上面的&#xff09; alert(1) 二、正式开始闯关 0x01 源码&#xff1a; 思路&#xff1a;闭…

前后端依赖下载上传

在某些情况下&#xff0c;可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖&#xff0c;你可以将它们保存在本地&#xff0c;然后在没有网络连接时使用&#xff0c;提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

SpringBoot整合rabbitmq-扇形交换机队列(三)

说明&#xff1a;本文章主要是Fanout 扇形交换机的使用&#xff0c;它路由键的概念&#xff0c;绑定了页无用&#xff0c;这个交换机在接收到消息后&#xff0c;会直接转发到绑定到它上面的所有队列。 大白话&#xff1a;广播模式&#xff0c;交换机会把消息发给绑定它的所有队…

异常网络下TCP的可靠服务机制(慢启动、拥塞避免、快重传、快恢复)

目录 TCP超时重传拥塞控制概述慢启动和拥塞避免下面讲解发送端如何判断拥塞发生。 快速重传和快速恢复 本文描述TCP在异常网络下的处理方式 以保证其可靠的数据传输的服务 TCP超时重传 tcp服务能够重传其超时时间内没有收到确认的TCP报文段&#xff0c;tcp模块为每一个报文段都…

看到极氪001这价格这配置,小米SU7我不等了

文 | AUTO芯球 作者 | 李诞 新款升级1100多项&#xff0c;还是原来老款的价格&#xff0c;新款极氪001你这样子卷&#xff0c;友商没法玩啊。 我惊呆了朋友们 不是极氪001一发布 第二天苹果就宣布造车失败 而是极氪001一直是30万以上中国品牌纯电轿车/SUV、高端猎装车销量…

MySQL 5.7.31详细下载安装配置

1、下载步骤 下载完毕后将文件解压到你想保存到的盘和目录内。我是将文件解压到D:\Mysql目录下面 2.配置环境变量 1.系统—>高级系统设置—>环境变量—>系统变量 在系统变量中点击新建&#xff0c;变量名为量名为&#xff1a;MYSQL_HOME&#xff0c;添加你的mysql…

浅析扩散模型与图像生成【应用篇】(四)——Palette

4. Palette: Image-to-Image Diffusion Models 该文提出一种基于扩散模型的通用图像转换&#xff08;Image-to-Image Translation&#xff09;模型——Palette&#xff0c;可用于图像着色&#xff0c;图像修复&#xff0c;图像补全和JPEG图像恢复等多种转换任务。Palette是一种…

将编译好的FFmpeg导入iOS项目使用(swift)

1. 将ffmpeg 拖入工程并添加search Paths路径 2.添加所需的framework和lib AudioToolbox.framework&#xff0c;CoreMedia.framework&#xff0c;libbz2&#xff0c;libbz&#xff0c;libiconv&#xff0c;VideoToolbox.framework 3.使用 在桥接header中引入头文件

MySql出现无法正常启动(0x000007b)的快速解决

目录 1.背景介绍 2.解决方案 1.背景介绍 昨天在清理电脑内存空间的时候&#xff0c;不小心将一些重要的系统组件删除&#xff0c;导致无法正常启动mysql&#xff0c;一开始是提示经过msvcp120.dll&#xff0c;于是找到下载dll的网站将组件补充进system&#xff0c;但随后又提…

nodejs配置环境变量后不生效(‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件)

一、在我们安装Node.js后&#xff0c;有时候会遇到node命令不管用的情况&#xff0c;关键是在安装时候已经添加配置了环境变量&#xff0c;向下面这样 但是还是不管用&#xff0c;这是因为环境变量配置不正确&#xff0c;权重不够&#xff0c;或者是命令冲突导致&#xff0c;解…

leetcode:135.分发糖果

解题思路&#xff1a;分发糖果时&#xff0c;既要考虑左面&#xff0c;又要考虑右面&#xff0c;如果同时考虑&#xff0c;就会顾此失彼&#xff0c;所以我们可以先考虑右边&#xff0c;再考虑左边&#xff0c;分别正序、逆序进行遍历。逆序遍历时相当于重置candy数组。 运用贪…