【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
- 博客主页:Duck Bro 博客主页
- 系列专栏:Qt 专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
Qt窗口 | 对话框 | 创建自定义对话框
文章编号:Qt 学习笔记 / 52
文章目录
- Qt窗口 | 对话框 | 创建自定义对话框
- 一、自定义对话框
- 1. Qt标准对话框
- 2. 自定义对话框
- 二、代码方式实现
- 1. 创建QMainWindow窗口
- 2. 添加按钮来触发对话框
- 3. 创建C++类(Dialog类)
- 4. 编写按钮的槽函数
- 5. 子窗口进行添加控件
- 三、图形化实现
- 1. 创建QMainWindow窗口
- 2. 创建一个按钮控件
- 3. 新建一个ui文件
- 4. 在界面中创建按钮和标签
- 5. 编写及创建按钮槽函数
- 6. 编写及创建关闭按钮槽函数
一、自定义对话框
1. Qt标准对话框
在Qt中存在许多自带的对话框,Qt 提供了多种可复⽤的对话框类型,即 Qt 标准对话框。Qt 标准对话框全部继承于QDialog类。
2. 自定义对话框
自定义对话框是一种可以根据用户需求进行定制的对话框界面。 通常,对话框是在应用程序中用于与用户进行交互的一种界面元素。而自定义对话框则可以根据具体的应用场景和功能需求,对对话框的样式、布局、内容等进行自定义。
例如,可以通过自定义对话框来创建一个具有特定样式和交互方式的确认对话框、输入对话框、选择对话框等。自定义对话框可以提供更加灵活和个性化的用户界面,以满足不同应用程序的需求。
二、代码方式实现
1. 创建QMainWindow窗口
步骤参考文章【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
在文章中详细介绍了如何创建一个QMainWindow窗口
2. 添加按钮来触发对话框
在QMainWindow窗口上,创建一个打开窗口的按钮
//mainwindow.h
class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();//声明槽函数void handle();private:Ui::MainWindow *ui;
};
//mainwindow.cpp
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//创建一个按钮QPushButton* button = new QPushButton("打开窗口按钮",this);//设置按钮的大小button->resize(300,100);//移动按钮位置button->move(250,200);//按钮信号点击触发槽函数connect(button,&QPushButton::clicked,this,&MainWindow::handle);
}
运行结果
3. 创建C++类(Dialog类)
-
创建一个新的类,类名为Dialog,继承QDialog类。
-
对dialog.h和dialog.cpp进行修改
//dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>class Dialog : public QDialog
{Q_OBJECT
public:Dialog(QWidget* parent);
};#endif // DIALOG_H
//dialog.cpp
#include "dialog.h"Dialog::Dialog(QWidget* parent) : QDialog(parent)
{}
4. 编写按钮的槽函数
void MainWindow::handle()
{//创建一个对话框Dialog * dialog = new Dialog(this);//设置窗口的大小dialog->resize(300,180);//设置窗口关闭dialog->setAttribute(Qt::WA_DeleteOnClose);//显示窗口dialog->show();
}
运行结果
5. 子窗口进行添加控件
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>class Dialog : public QDialog
{Q_OBJECT
public:Dialog(QWidget* parent);void buttonclose();
};#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include<QPushButton>
#include<QLabel>
#include<QVBoxLayout>
Dialog::Dialog(QWidget* parent) : QDialog(parent)
{//创建垂直布局QVBoxLayout* layout = new QVBoxLayout();this->setLayout(layout);//创建标签和按钮QLabel * label = new QLabel("这是一个窗口",this);QPushButton* button = new QPushButton("关闭",this);//将控件添加进布局中layout->addWidget(label);layout->addWidget(button);//进行按钮槽函数链接connect(button,&QPushButton::clicked,this,&Dialog::buttonclose);}void Dialog::buttonclose()
{//关闭子窗口this->close();
}
运行结果
三、图形化实现
1. 创建QMainWindow窗口
步骤参考文章【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍
在文章中详细介绍了如何创建一个QMainWindow窗口
2. 创建一个按钮控件
在界面中拖拽进一个PushButton控件
3. 新建一个ui文件
4. 在界面中创建按钮和标签
在dialog.ui文件中创建PushButton按钮和Label标签
5. 编写及创建按钮槽函数
void MainWindow::on_pushButton_clicked()
{//创建窗口Dialog* dialog = new Dialog(this);//关闭窗口释放内存dialog->setAttribute(Qt::WA_DeleteOnClose);//展示窗口dialog->show();
}
6. 编写及创建关闭按钮槽函数
void Dialog::on_pushButton_clicked()
{//关闭窗口this->close();
}
运行结果
相关文章:

【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建自定义对话框 文章编号:Qt 学习笔记…...
# RocketMQ 实战:模拟电商网站场景综合案例(五)
RocketMQ 实战:模拟电商网站场景综合案例(五) 一、mybatis 逆向工程使用 4、逆向工程 生成 的 .xml 配置文件。 4.1、生成的 TradeCouponMapper.xml 文件。 <?xml version"1.0" encoding"UTF-8" ?> <!DOC…...
Cesium4Unreal - # 009 直接加载显示shapefile
文章目录 直接加载显示shapefile1 思路2 步骤2.1 下载shapelib2.2 添加依赖模块2.3 创建Actor2.3.1 MyShapeLoaderActor.h2.3.2 MyShapeLoaderActor.cpp2.3 蓝图代码直接加载显示shapefile 1 思路 在Unreal Engine中加载显示shapefile无非就是从shapefile中读取几何数据,并且…...
Release和Debug的区别?Release有什么好处?【面试】
Release和Debug的区别: 优化:Debug版本通常不进行优化,以便更容易调试;Release版本则经过高度优化,以提高性能。调试信息:Debug版本包含详尽的调试信息,如符号信息和源代码映射;Rel…...

DevExpress 控件和库
UI控件和组件 DevExpress WinForms包括以下Windows窗体库和控件: Grids and Editors Data Grid Tree List Vertical Grid Property Grid Gantt Control Data Editors and Simple Controls Office-inspired Ribbon, Bars and Menu Rich Text Editor Scheduler S…...

车载以太网测试
一、车载以太网的发展 IEEE: 电气与电子工程师协会,其中IEEE802.3工作小组致力于推进以太网相关标准的制定与完善,其发展主要经过一下三个阶段: 1.诊断/程序更新 2.智驾座舱 3.主干网 二、车载以太网协议(OSI七层模型&#x…...

181.二叉树:验证二叉树(力扣)
代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…...

陪诊小程序开发,陪诊师在线接单
近几年,陪诊师成为了一个新兴行业,在科技时代中,陪诊小程序作为互联网下的产物,为陪诊市场带来了更多的便利。 当下生活压力大,老龄化逐渐严重,年轻人很难做到陪同家属看病。此外,就诊中出现了…...

【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号
无人共享棋牌室系统——棋牌娱乐新体验 🎲引言 随着科技的不断发展,传统棋牌室正逐渐迈向智能化、无人化。今天,我要为大家介绍的就是这款引领潮流的“无人共享棋牌室系统”。它不仅为棋牌爱好者提供了全新的娱乐体验,更在便捷性…...
2024-6-10-zero shot,few shot以及无监督学习之间的关系是什么
Zero-shot learning、few-shot learning和无监督学习都是机器学习中的方法,它们共同的特点是在有限或没有标签数据的情况下进行学习。下面是这三种方法之间的关系和区别: Zero-shot Learning (零样本学习): 零样本学习是在模型训练过程中完全…...

C语言|十进制数转换任意进制数
将十进制数转换成任意进制数。 思路分析: 先举一个具体的例子:十进制转换为二进制数 1 定义一个数组a[100],先归0,再存放运算过程中的余数 2 定义变量m, 先存放键盘上输入的十进制数 3 定义变量R 表示几进制数,循环变量…...

驱动开发(二):创建字符设备驱动
往期文章: 驱动开发(一):驱动代码的基本框架 驱动开发(二):创建字符设备驱动 ←本文 目录 字符驱动设备的作用 函数 字符驱动设备注册和注销 注册 注销 自动创建设备节点 创建class类…...

Golang:使用时会遇到的错误及解决方法详解
Go语言使用时常常会遇到的一些错误及解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下 1、go: go.mod file not found in current directory or any parent directory go mod init name 2、Failed to build the application: main.go:4:2:…...

r语言数据分析案例25-基于向量自回归模型的标准普尔 500 指数长期预测与机制分析
一、背景介绍 2007 年的全球经济危机深刻改变了世界经济格局,引发了一系列连锁反应,波及各大洲。经济增长停滞不前,甚至在某些情况下出现负增长,给出口导向型发展中国家带来了不确定性。实体经济受到的冲击尤为严重,生…...

解决使用Jmeter进行测试时出现“302“,‘‘401“等用户未登录的问题
使用 JMeter 压力测试时解决登录问题的两种方法 在使用 JMeter 进行压力测试时,可能会遇程序存在安全验证,必须登录后才能对里面的具体方法进行测试: 如果遇到登录问题,通常是因为 JMeter 无法模拟用户的登录状态,导…...
MySql通过 Procedure 循环删除数据
一、问题描述 在日常使用运维中,一些特殊情况需要批量删除陈旧或异常数据。 如果通过 delete from 【表名】 where 【条件】 直接删除,可能会由于数据量过大,事务执行时间过长,造成死锁。 二、解决方案 通过 Procedure 使用循环…...
Spring Boot 的启动原理、Spring Boot 自动配置原理
Spring Boot启动原理包含自动装配原理。 Spring Boot 的启动原理: 1. 入口类与 SpringApplication 初始化: 应用程序通常从一个带有 SpringBootApplication 注解的主类开始,这个注解是一个组合注解,包含了 SpringBootConfigurat…...

不会开发的你也能管理好企业漏洞,开源免费工具:洞察(insight II)
公司刚开始建设安全管理时,都是从一片混沌开始的,资源总是不够的,我们每个做安全的人员,又要会渗透,又要抓制度,还得管理各种漏洞。在管理楼栋是,我相信大家都遇到过以下几个问题: …...
java实现两个不同对象的集合复制
场景: 我们开发中会遇到集合对象复制的场景,可以避免代码的重复编写 基于 com.alibaba.fastjson.JSON 实现对象集合的拷贝 对象定义:ObjectA属性:id,name,ageObjectB属性:id,name…...
bind failed: Address already in use
添加代码 这是个很常见的问题:在bind函数之前添加如下代码即可。 int yes 1; if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) -1) { perror("setsockopt"); exit(1); } 查看端口 如果还是不能结果,那么说…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...