QMainWindow使用QTabWidget添加多个QWidget

QTabWidget添加其它Wdiget的2个函数如下:

QTabWidget的介绍可参考官网QTabWidget Class | Qt Widgets | Qt 6.9.1

直接上代码,代码如下:

#include <QMainWindow>#include <QApplication>
#include <QVBoxLayout>
#include <QPushButton>
#include <QLineEdit>
#include <QScreen>int nWidth = 800;
int nHeight = 600;// 移动窗口到屏幕中央
void MoveCenter(QMainWindow& w){// 获取屏幕信息QScreen *screen = QGuiApplication::primaryScreen();QRect screenGeometry = screen->geometry();int screenWidth = screenGeometry.width();int screenHeight = screenGeometry.height();// 计算窗口居中位置int x = (screenWidth - nWidth) / 2;int y = (screenHeight - nHeight) / 2;w.move(x, y);  
}int main(int argc, char *argv[])
{QApplication a(argc, argv);QMainWindow w;w.setGeometry(0,0,nWidth,nHeight);MoveCenter(w);// 设置中央控件QTabWidget *centralWidget = new QTabWidget(&w);w.setCentralWidget(centralWidget);//////////////////// widget1 //////////////////////////////QWidget *widget1 = new QWidget();QVBoxLayout *mainlayout1 = new QVBoxLayout(widget1);// 子水平布局(用于 Button 1 和 Button 2 水平排列)QHBoxLayout *buttonLayout1 = new QHBoxLayout();buttonLayout1->addWidget(new QPushButton("Button 1"));buttonLayout1->addWidget(new QPushButton("Button 2"));// 添加按钮布局到主布局mainlayout1->addLayout(buttonLayout1); //index =0// 设置拉伸因子,使 QLineEdit 占据剩余空间QLineEdit *lineEdit = new QLineEdit();lineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);mainlayout1->addWidget(lineEdit); //index =1mainlayout1->setStretch(0, 0);  // 按钮布局不拉伸mainlayout1->setStretch(1, 1);  // QLineEdit 拉伸填充剩余空间//////////////////// widget2 //////////////////////////////QWidget *widget2 = new QWidget();// 主垂直布局(用于上下排列按钮和输入框)QVBoxLayout *mainlayout2 = new QVBoxLayout(widget2);// 子水平布局(用于 Button 1 和 Button 2 水平排列)QHBoxLayout *buttonLayout2 = new QHBoxLayout();buttonLayout2->addWidget(new QPushButton("Button 1"));buttonLayout2->addWidget(new QPushButton("Button 2"));// 添加按钮布局到主布局mainlayout2->addLayout(buttonLayout2);// 添加 QLineEdit 到主布局(默认在按钮下方)QLineEdit *lineEdit2 = new QLineEdit();mainlayout2->addWidget(lineEdit2);//使用弹簧填充剩余距离mainlayout2->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding));//////////////////////// 添加tabWdiget ///////////////centralWidget->addTab(widget1,"1");centralWidget->addTab(widget2,"2");w.show();return a.exec();
}

上面的代码运行结果如下:

网上其它的资料可参考:QT界面:tabWidget选项卡使用小结_qt怎么将ui界面放入到tabwidget-CSDN博客

QTabWidget——创建标签页的多页面切换_qt tabwidget 标签切换 信号-CSDN博客

附加:

1、QDataStream 类实现了 C++ 基本数据类型的序列化,可参考官网

QDataStream Class | Qt Core | Qt 6.9.1

2、Qt 库提供了一组基于模板的通用容器类。这些类可用于存储指定类型的项目。可参考官网

Container Classes | Qt Core | Qt 6.9.1

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

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

相关文章

AI学习机哪个好?选这几款步步高就对了

随着新教改政策的推进&#xff0c;教育对孩子的综合素养提出了更高要求。英语更重听说、数学更重思维&#xff0c;这让许多家长在辅导孩子时感到压力倍增。因此&#xff0c;如何选择一款能真正帮助孩子提升能力的学习机&#xff0c;成为了大家普遍关心的问题。面对市场上功能各…

【设计模式】--重点知识点总结

题1 1、工厂和产品之间是依赖关系 2、工厂方法模式&#xff1a;工厂方法不能为静态方法。如果是静态方法&#xff0c;子类无法重写行为。 简单工厂可以用静态方法 3、采用设计模式&#xff0c;以保证成功的设计和体系结构 4、建造者模式&#xff1a;&#xff08;1&#xf…

轻量实现 OCPP 1.6 JSON 协议(欧洲版)的充电桩调试平台

1 项目概览 1.1 目标与适用场景 1.1.1 简介 本文介绍的开源项目 ocpp_charge&#xff0c;是一个 自研轻量实现 OCPP 1.6 JSON 协议&#xff08;欧洲版&#xff09; 的充电桩调试平台。 它没有依赖官方 OCPP 1.6J 库&#xff0c;而是从零实现协议解析与会话管理&#xff0c;适…

Ubuntu 搭建 Solana 区块链开发环境 + Anchor 智能合约完整教程

文章目录简介特征核心概念Solana 的工作原理&#xff08;简单版&#xff09;为什么人们选择 Solana开发环境准备Solana 官网Solana 文档Anchor 文档GithubRust SDK快速安装 Solana&#xff08;推荐&#xff09;单独安装 Solana安装依赖项安装 Solana CLI安装 Anchor CLI安装 AV…

curl 介绍及使用教程

文章目录 什么是 curl? 1. 解析用户输入与初始化 2. 建立网络连接 3. 构建并发送请求 4. 接收并处理响应 5. 清理资源 核心特点总结 基本语法 常用功能及示例 1. 基本 HTTP 请求 2. 发送 GET 请求 3. 发送 POST 请求 4. 设置请求头 5. 处理认证 6. 断点续传 7. 跟随重定向 8. …

【第十一章】Python 队列全方位解析:从基础到实战

Python 队列全方位解析&#xff1a;从基础到实战 本文将从基础概念到高级应用&#xff0c;用 “文字解释 代码示例 图表对比 实战案例” 的方式&#xff0c;全面覆盖 Python 队列知识&#xff0c;零基础也能轻松掌握。 文章目录Python 队列全方位解析&#xff1a;从基础到实…

跨平台开发框架实测:React Native vs Flutter vs Kotlin Multiplatform

本文聚焦 React Native、Flutter 和 Kotlin Multiplatform 三大跨平台开发框架&#xff0c;从性能表现、开发效率、生态系统、跨平台一致性及学习成本五个关键维度展开实测对比。通过具体场景的测试数据与实际开发体验&#xff0c;剖析各框架的优势与短板&#xff0c;为开发者在…

【网弧软著正版】2025最强软著材料AI生成系统,基于GPT5.0

软著材料AI一键生成系统 网址&#xff1a;AI软著材料生成平台 | 一键生成全套软著文档 - 网络弧线 产品简介&#xff1a; 专业的软件著作权材料AI生成平台&#xff0c;基于GPT-5模型开发&#xff0c;自2022年运营至今已服务数万用户成功获得软著证书。输入软件名称即可自动生成…

存储掉电强制拉库引起ORA-01555和ORA-01189/ORA-01190故障处理---惜分飞

机房存储突然掉电导致Oracle数据库访问存储异常,数据库报出大量的ORA-27072: File I/O error,Linux-x86_64 Error: 5: Input/output error,ORA-15081: failed to submit an I/O operation to a disk等错误,实例直接crash Wed Aug 27 07:11:53 2025 Errors in file /u01/app/ora…

R3:适用于 .NET 的新一代响应式扩展库,事件订阅流

R3&#xff1a;适用于 .NET 的新一代响应式扩展库 R3 是 dotnet/reactive&#xff08;.NET 官方响应式扩展&#xff09;与 UniRx&#xff08;适用于 Unity 的响应式扩展&#xff09;的新一代替代方案&#xff0c;支持多种平台&#xff0c;包括 Unity、Godot、Avalonia、WPF、W…

Android Framework打电话禁止播放运营商视频彩铃

文章目录定位Android电话的源码及UI禁止打电话时播放运营商广告视频彩铃运营商视频彩铃framework禁止播放视频彩铃需求&#xff1a;打电话时&#xff0c;对方未接听&#xff0c;这个时候可能会播放运营商的视频彩铃&#xff0c;需求是屏蔽彩铃播放。测试平台&#xff1a;展锐。…

WebIDEPLOY 赋能数字校园建设:智慧管理系统的效能升级与实践路径 —— 以校园资源协同优化构建高效教育生态的探索

一、教育数字化转型中的现实困境&#xff1a;从 "管理孤岛" 到 "效率瓶颈"教育数字化转型的加速推进&#xff0c;让智慧校园建设成为高校提升核心竞争力的关键抓手。但当前校园物联网应用中&#xff0c;一系列痛点逐渐凸显&#xff1a;设备管理呈现 "…

开源AI大模型AI智能名片S2B2C商城小程序赋能下的“信息找人“:人工智能驱动的线下零售精准化革命

摘要&#xff1a;在人工智能技术深度渗透零售行业的背景下&#xff0c;线下零售场景正经历从"人找信息"到"信息找人"的范式转变。本文聚焦开源AI大模型、AI智能名片与S2B2C商城小程序的技术融合&#xff0c;系统分析其在客户定位、行为分析、精准营销等环节…

【第三方网站运行环境测试:服务器配置(如Nginx/Apache)的WEB安全测试重点】

服务器配置安全测试是WEB安全评估的关键&#xff0c;一般关注信息泄露、传输安全、访问控制及资源防护等方面。信息泄露控制 检查服务器响应头是否暴露敏感信息。Server头应去除Nginx/Apache详细版本号&#xff0c;防止攻击者针对特定版本漏洞进行利用。错误页面需自定义&#…

【Hot100】15.三数之和

解法&#xff1a;排序 双指针首先对数组排序&#xff0c;便于后面处理重复元素。第一层循环遍历数组中的每一个元素&#xff0c;作为三元组中的第一个元素 nums[i] &#xff0c;并跳过重复的元素。对于每个 i &#xff0c;使用双指针 l &#xff08;初始为 i1&#xff09;和 r…

Flutter 本地持久化存储:Hive 与 SharedPreferences 实战对比

在移动应用开发中&#xff0c;本地持久化存储是必不可少的功能。无论是保存用户登录状态、应用配置&#xff0c;还是缓存数据&#xff0c;合理选择存储方案都能提高应用的性能与用户体验。在 Flutter 中&#xff0c;常用的本地存储方式主要有两种&#xff1a;SharedPreferences…

Lombok 实用注解深度解析!

目录一、AllArgsConstructor&#xff1a;全参数构造函数生成器1. 基本概念2. 使用示例3. 高级特性4. 注意事项二、RequiredArgsConstructor&#xff1a;必需参数构造函数生成器1. 基本概念2. 使用示例3. 高级特性4. 注意事项三、SneakyThrows&#xff1a;异常处理"偷懒&qu…

Go+Gdal 完成高性能GIS数据空间分析

概要 环境准备 技术流程 一、在golang中如何调用gdal 二、读取数据 三、执行空间分析 四、性能提升 小结 概要 Gdal库可以说是所有gis软件的基础&#xff0c;基本上现在所有的工业gis软件都是基于gdal开发的&#xff0c;其主要包括了栅格处理、矢量处理、坐标系处理所涉及的各类…

【python】python进阶——Lambda 函数

目录 引言 一、简介 1.1 基本语法 1.2 优势 1.3 局限性 二、基本用法 2.1 无参数lambda 函数 2.2 多参数 lambda 函数 三、常见使用场景 3.1 与高阶函数配合使用 3.2 作为排序键 3.3 在 GUI 编程中作为回调函数 3.4 在 Pandas 中的应用 四、高级技巧 4.1 条件表…

基于单片机电动车充电桩/充电车棚环境监测设计

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 随着电动车普及&#xff0c;充电桩的环境安全监测成为重要课题。基于单片机的电动车充电桩环境检…