当前位置: 首页 > news >正文

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.dtcms.com/a/361946.html

相关文章:

  • Simulink库文件-一种低通滤波模块搭建方法
  • 优化正则表达式性能:预编译与模式匹配的最佳实践
  • 均值滤波和中值滤波的简介、C语言实现和实测
  • 边缘计算设备 RK3576芯片
  • CGroup 资源控制组 + Docker 网络模式
  • NLP大语言模型数据准备
  • NLP技术突破:浅层与深层语义分析全解析
  • 嵌入式学习(day37) 数据库 Sqlite相关命令函数
  • Salesloft OAuth漏洞影响范围大幅增加,波及所有集成应用
  • 可编辑115页PPT | 某纸制品制造企业数字化转型战略规划项目建议书
  • 闭包的简单讲解
  • 三、数据结构
  • VMware安装
  • 基于docker-compose搭建EFK(Elasticsearch+fluentd+kibana)的日志平台
  • 【高等数学】第十章 重积分——第五节 含参变量的积分
  • python3中的除法/ (会把int变成float)向下取整//(不会改变int类型) 和 直接舍弃小数,向0截断
  • JVM性能监控工具的使用
  • python中的分代垃圾回收机制的原理【python进阶二、2】
  • 基于uni-app的校园综合服务平台开发实战
  • uni-app支持单多选、搜索、查询、限制能否点击组件
  • 掌握CRISPE框架:结构化提示词设计的终极指南
  • 【溜冰场轮滑计时计费扣次软件有哪些?】分享常见的几款软件,佳易王软件系列#软件功能解析操作教程
  • Tiny RDM:一个现代化轻量级的Redis桌面客户端
  • 盟接之桥说制造:浅谈本分和做正确的事情
  • 前端微前端架构深度实践:从单体应用到微前端的完整架构解决方案
  • 携程旅行 web 验证码 分析
  • GET、POST、添加、编辑
  • python爬虫之selenium库进阶(小白五分钟从入门到精通)
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(23):文法+单词第7回5+考え方3
  • 为什么要使用RocketMQ半消息