QT--splitter的使用

提示:本文为学习记录,若有错误,请联系作者,谦虚受教。

文章目录


前言


一、实现步骤

创建 QTabWidget:首先,确保你有一个 QTabWidget 控件。

添加初始标签页:向 QTabWidget 添加一些初始的标签页。

移除标签页内容:选择你想要替换为 QSplitter 的标签页,并移除其当前内容(如果有的话)。

创建 QSplitter:创建一个 QSplitter 控件,并设置其方向(水平或垂直)。

添加控件到 QSplitter:将需要的控件(如 QPushButton、QWidget 等)添加到 QSplitter 中。

设置 QSplitter 为标签页内容:将 QSplitter 设置为所选标签页的新内容。

二、使用步骤

1.新建splitter

包含必要的头文件:

首先,确保你的类包含了 QSplitter 的头文件。

cpp

cpp 复制代码
#include <QSplitter>

创建 QSplitter 实例:

在你的窗口或对话框的构造函数中,或者在其他适当的位置,创建 QSplitter 的实例。

cpp

QSplitter *splitter = new QSplitter(this); // 假设 "this" 是你的主窗口或容器

这里的 this 参数表示 QSplitter 的父对象。通常,你会将其设置为你的主窗口或其他容器窗口部件。

  1. 添加子窗口部件到 QSplitter:

使用 addWidget() 方法将其他窗口部件添加到 QSplitter 中。

cpp

cpp 复制代码
QPushButton *button1 = new QPushButton("Button 1", splitter);  
QPushButton *button2 = new QPushButton("Button 2", splitter);  
splitter->addWidget(ui->groupBox);

// ... 可以添加更多窗口部件

注意,当你将窗口部件添加到 QSplitter 时,它们会自动成为 QSplitter 的子窗口部件。

  1. 设置 QSplitter 的属性(可选):

你可以使用各种方法来设置 QSplitter 的属性,例如方向(水平或垂直)、初始大小等。

cpp

cpp 复制代码
splitter->setOrientation(Qt::Horizontal); // 设置分割方向为水平

2.splitter的使用

cpp 复制代码
 // 将新的 QWidget 设置为标签页内容  
    int index = tabWidget->indexOf(initialTab); // 获取要替换的标签页索引  
    tabWidget->removeTab(index); // 移除旧标签页(如果需要的话)  
    tabWidget->insertTab(index, newTabContent, "Tab 1 with Splitter"); // 插入新标签页  

3.splitter大小

cpp 复制代码
splitter->setStretchFactor(0, 1); // 第一个控件的拉伸因子为1  
splitter->setStretchFactor(1, 3); // 第二个控件的拉伸因子为3

总结

善于总结,多进一步。

相关推荐
cn_mengbei20 分钟前
鸿蒙PC开发实战:Qt环境搭建保姆级教程与常见问题避坑指南(HarmonyOS 4.0+DevEco Studio 3.1最新版)
qt·华为·harmonyos
非凡ghost35 分钟前
MPC-QT视频播放器(基于Qt框架播放器)
开发语言·windows·qt·音视频·软件需求
cn_mengbei1 小时前
从零到一:基于Qt on HarmonyOS的鸿蒙PC原生应用开发实战与性能优化指南
qt·性能优化·harmonyos
IOT-Power3 小时前
QT 对话框(QDialog)中 accept、reject、exec、open的使用
开发语言·qt
_OP_CHEN3 小时前
【从零开始的Qt开发指南】(十九)Qt 文件操作:从 I/O 设备到文件信息,一站式掌握跨平台文件处理
开发语言·c++·qt·前端开发·文件操作·gui开发·qt文件
cn_mengbei4 小时前
鸿蒙PC开发指南:从零配置Qt环境到实战部署完整流程
qt·华为·harmonyos
GREGGXU4 小时前
Could not load the Qt platform plugin “xcb“ in ““ even though it was found.
linux·qt
Summer_Uncle5 小时前
【QT学习】qt项目使用MySQL数据库
数据库·qt·学习
Henry Zhu1235 小时前
Qt样式系统详解(上)
qt
深蓝海拓5 小时前
PySide6从0开始学习的笔记(二十三)使用QRunnable在线程池中执行临时任务
笔记·python·qt·学习·pyqt