QT上位机开发(属性页面的设计)

news2025/1/11 3:59:14

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        窗口设计的时候,如果很多内容一个page放不下,那么这个时候我们一般都会选择使用tab来进行处理。安装了tab之后,就相当于一个windows里面有好几个page,展示和可操作的内容一下子就扩大了,这应该就是tab页面的优势所在。tab是界面开发中很常见的一个属性,大家可以好好掌握一下。

1、创建一个带widget的基础工程

        创建带widget的基础工程,主要是建立一个qt编译框架,实际代码未必用得上。

2、编写代码

        代码的部分也很简单,主要的内容就是mainWindow里面放置一个QTabWidget,它可以看成是tab的总合体。而每一个tab item就是一个独立的QWidget,QWidget部署好了之后呢,就会加入到QTabWidget当中。另外每一个tab里面,我们放置了一个按钮,按钮还配置了对应的回调函数,主要是qDebug()打印,大家可以看下代码。

#include <QApplication>
#include <QTabWidget>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include <QDebug>

int main(int argc, char *argv[]) {
	QApplication a(argc, argv);

	// 创建主窗口
	QWidget mainWindow;
	mainWindow.setWindowTitle("Qt TabWidget Demo");
	mainWindow.resize(600,450);

	// 创建一个 QTabWidget
	QTabWidget tabWidget(&mainWindow);

	// 创建第一个标签页
	QWidget tab1;
	QVBoxLayout layout1(&tab1);

	// 创建Button 1,并为其添加点击事件槽函数
	QPushButton button1("Button 1 in Tab1");
	QObject::connect(&button1, &QPushButton::clicked, [&]() {
		qDebug() << "Button 1 clicked!";
	});

	layout1.addWidget(&button1);
	tabWidget.addTab(&tab1, "Tab 1");

	// 创建第二个标签页
	QWidget tab2;
	QVBoxLayout layout2(&tab2);

	// 创建Button 2,并为其添加点击事件槽函数
	QPushButton button2("Button 2 in Tab2");
	QObject::connect(&button2, &QPushButton::clicked, [&]() {
		qDebug() << "Button 2 clicked!";
	});

	layout2.addWidget(&button2);
	tabWidget.addTab(&tab2, "Tab 2");

	// 将 QTabWidget 放入主窗口
	QHBoxLayout mainLayout(&mainWindow);
	mainLayout.addWidget(&tabWidget);

	mainWindow.show();
	return a.exec();
}

3、测试和验证

        代码准备好了之后,就可以开始测试了。测试有两点,第一,看tab是不是可以正常显示;第二,看tab中的按钮被按下去之后,qDebug()在输出窗口中有没有打印,这样可以验证回调函数确实被调用了没有。

        

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

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

相关文章

NR中如何判断是否需要measurement gap来做邻区的测量?

先看下NR中定义的测量。 intra-freq 测量和inter-freq测量可以分为以下几类&#xff1a; 1 SSB based intra-freq 测量&#xff1a;serving cell SSB的center freq与邻区 SSB的center freq 相同并且两个SSB 的SCS也相同。 2 SSB based inter-freq 测量&#xff1a;serving ce…

使用AI平台处理训练和微调数据

Llama.cpp是Georgi Gerganov 基于 Meta 的 LLaMA 模型 手写的纯 C/C 版本&#xff0c;让我们实现了在笔记本电脑上部署和体验AI大模型&#xff0c;实现没有GPU也可以运行AI大模型。执行起来虽然比较慢&#xff0c;但是只能算做体验&#xff0c;还可以选择不同语言。某个模型使用…

自动化的运维管理:探究Kubernetes工作机制的奥秘

1 云计算时代的操作系统 Kubernetes 是一个生产级别的 容器编排平台 和 集群管理系统 &#xff0c;能够 创建、调度容器&#xff0c;监控、管理服务器。 容器是什么&#xff1f;容器是软件&#xff0c;是应用&#xff0c;是进程。服务器是什么&#xff1f;服务器是硬件&#…

通过 Elastic Stack 充分利用电信领域生成式 AI 的力量

作者&#xff1a;Elastic Piotr Kobziakowski, Jrgen Obermann 在瞬息万变的电信领域&#xff0c;Elastic Stack 与生成式 AI 的集成正在开创运营效率和创新的新时代。 这些技术不仅增强了网络运营&#xff0c;而且还彻底改变了各个部门的内部流程。 下面&#xff0c;我们将深入…

OpenAI推出GPT商店和ChatGPT Team服务

&#x1f989; AI新闻 &#x1f680; OpenAI推出GPT商店和ChatGPT Team服务 摘要&#xff1a;OpenAI正式推出了其GPT商店和ChatGPT Team服务。用户已经创建了超过300万个ChatGPT自定义版本&#xff0c;并分享给其他人使用。GPT商店集结了用户为各种任务创建的定制化ChatGPT&a…

联手英特尔,释放星飞分布式全闪存储潜能

近日&#xff0c;英特尔官网发布了与 XSKY 星辰天合联手打造的解决方案&#xff0c;即 XSKY 的新一代全闪分布式存储系统 XINFINI&#xff0c;该存储系统采用英特尔 QAT 加速数据压缩/解压缩&#xff0c;从而大幅度提升存储系统性能。 全闪存储系统面临的解压缩挑战 在存储系统…

LeetCode刷题--- 地下城游戏

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述动…

【C++】零碎知识点汇总_1

abs() 函数&#xff1a; abs() 是 C 和 C 标准库中的函数&#xff0c;用于计算整数的绝对值。在 C 中&#xff0c;abs() 函数的原型位于 <stdlib.h> 头文件中&#xff0c;用于整数类型在 C 中&#xff0c;abs() 函数的原型位于 <cstdlib> 头文件中&#xff0c;并可…

【漏洞复现】Hikvision SPON IP网络对讲广播系统存在命令执行漏洞CVE-2023-6895

漏洞描述 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版…

SpringBoot集成Skywalking实现分布式链路追踪

官方网址&#xff1a; Apache SkyWalking官方文档&#xff1a; SkyWalking 极简入门 | Apache SkyWalking下载地址&#xff1a;Downloads | Apache SkyWalking Agent&#xff1a;以探针的方式进行请求链路的数据采集&#xff0c;并向管理服务上报&#xff1b; OAP-Service&am…

2023年快要结束了,今年哪些计算机书值得推荐?

2023年推荐新书有如下几本&#xff1a; 1、软件开发安全之道概念、设计与实施 软件安全设计和实施&#xff0c;覆盖安全概念、设计与实践&#xff0c;让您轻松应对各种威胁与挑战&#xff0c;帮助读者培养安全意识&#xff0c;全面了解软件开发安全之道。 2、C Templates&…

云服务器搭建GitLab

经验总结&#xff1a; 1、配置需求&#xff1a;云服务器内存最低4G 2、内存4G的云服务器&#xff0c;在运行容器后&#xff0c;会遇到云服务器操作卡顿问题&#xff0c;这里有解决方案 转载&#xff1a;服务器搭建Gitlab卡顿解决办法-CSDN博客 3、云服务器的操作系统会影响…

OpenAI大反击!称纽约时报涉嫌故意操纵,且数据是「合理使用」

大家好我是二狗。 《纽约时报》向法院起诉OpenAI侵犯版权后续事件来了&#xff01; 就在今天&#xff0c;OpenAI进行了一场“危机公关”&#xff1a;直接在官方博客上撰文发声&#xff0c;反驳《纽约时报》的诉讼&#xff0c;其主要观点有四个&#xff1a; 1、我们正在和新闻…

将WebGL打包的unity项目部署至Vue中

一、webgl打包 创建一个空项目&#xff08;或者直接使用现成的项目都可以&#xff09;这里以该空项目为例子 注意&#xff1a; 如果你的unity项目中有文字&#xff0c;不需要使用unity默认的字体&#xff0c;需要更改它的字体&#xff0c;否则在最后生成的页面中会显示不出来…

Vue过滤器详解

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介基本用法多个过滤器的串联过滤器在指令中的应用全局过滤器 ⭐ 本期推荐 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏&#xff01;创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每…

reactNative0.71版本的使用

开发环境配置 参考reactNative 官网 版本选中0.71 打包配置 1. IOS 打开项目 -> 进入ios目录->执行命令 pod install ->项目名称.xcworkspace -> 使用xcode打开->配置证书 证书配置截图如下 &#x1f4a1;tips&#xff1a;TARGETS目录下会有多个文件&#x…

Java获取时间,自动给创建时间创建人等赋值

ApiOperation("添加")PostMapping()public ApiResult<?> save(RequestBody FeePropertyRoomArea feePropertyRoomArea) {User usergetLoginUser();LocalDateTime localDateTime LocalDateTime.now();feePropertyRoomArea.setCreateTime(localDateTime);feePr…

数据库编程大赛冠军:郑凌云:0.67秒通过百万级数据评测!SQL代码惊现神之一手!

12月27日&#xff0c;NineData和云数据库技术社区主办&#xff0c;华为云、火山引擎、开源中国、云和恩墨、TDengine、云猿生数据、DORIS、ITPUB等协办单位和媒体&#xff0c;共同举办了本次《数据库编程大赛》。大赛题目「用一条SQL给出扑克牌24点的计算表达式」。 以下冠军选…

VUE购物车商品的添加、删除和计算总金额功能

效果 代码 <template><div id"box"><!--全选功能--><input type"checkbox" change"handleChange" v-model"isAllChecked" /><!--绑定事件&#xff0c;不选用click&#xff0c;使用change每次check值改变会…

swing快速入门(四十三)JTree的常见节点关系用法

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff08;一共16个常见用法&#xff0c;内容较多此处概述一下&#xff09; ⚡按各类关系查询节点或节点组内容 ⚡按各类关系查询某种关系是否成立 ⚡按各类关系查询符合某些关系的数量 package swing41_50;import javax.sw…