Windows图形界面(GUI)-QT-C/C++ - QT Tab Widget

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、概述

1.1 什么是 QTabWidget?

1.2 使用场景

二、常见样式

2.1 选项卡式界面

2.2 动态添加和删除选项卡

2.3 自定义选项卡标题和图标

三、属性设置

3.1 添加页面(Add Page)

3.2 删除页面(Remove Page)

3.3 页面标题(Tab Text)

3.4 页面图标(Tab Icon)

3.5 当前选项卡索引(Current Index)

四、内容处理

4.1 添加页面

4.2 插入页面

4.3 删除页面

4.4 设置页面标题

4.5 获取页面标题

4.6 设置页面图标

4.8 获取当前页面索引

4.9 设置当前页面索引

五、高级功能

5.1 自定义选项卡样式

5.2 选项卡位置

5.3 选项卡关闭按钮

5.4 选项卡拖拽


一、概述

1.1 什么是 QTabWidget

QTabWidget 是 Qt 框架中的一个重要控件,用于在一个窗口中显示多个页面。每个页面可以包含不同的控件和内容,用户可以通过点击选项卡来切换不同的页面。

QTabWidget 提供了一个简洁、有序的界面,特别适合在有限的屏幕空间内显示多个功能或信息组。

1.2 使用场景

  • 多页面显示:当需要在同一个窗口中显示多个页面时,QTabWidget 是一个理想的选择。每个页面可以包含不同的控件和内容,用户可以通过点击选项卡来切换页面。

  • 界面整洁:在有限的屏幕空间内,QTabWidget 可以帮助开发者将多个功能或信息组组织得井井有条,保持界面的整洁和有序。

  • 动态管理QTabWidget 支持动态添加和删除选项卡,使得开发者可以根据需要灵活地管理页面。

二、常见样式

2.1 选项卡式界面

QTabWidget 提供了一个选项卡式的界面,每个选项卡对应一个页面。用户可以通过点击选项卡来切换不同的页面。

2.2 动态添加和删除选项卡

QTabWidget 支持动态添加和删除选项卡,开发者可以根据需要随时添加或删除页面。

2.3 自定义选项卡标题和图标

每个选项卡可以设置标题和图标,使得界面更加直观和美观。

三、属性设置

3.1 添加页面(Add Page)

使用 addTab(QWidget *widget, const QString &label) 方法可以向 QTabWidget 添加一个新页面,并设置页面的标题。

QTabWidget *tabWidget = new QTabWidget(this);
QWidget *page1 = new QWidget();
tabWidget->addTab(page1, "Page 1");

3.2 删除页面(Remove Page)

使用 removeTab(int index) 方法可以从 QTabWidget 中删除指定位置的页面。

tabWidget->removeTab(0); // 删除第一个页面

3.3 页面标题(Tab Text)

使用 setTabText(int index, const QString &label) 方法可以设置指定位置页面的标题。

tabWidget->setTabText(0, "New Page 1 Title");

3.4 页面图标(Tab Icon)

使用 setTabIcon(int index, const QIcon &icon) 方法可以设置指定位置页面的图标。

tabWidget->setTabIcon(0, QIcon(":/images/icon.png"));

3.5 当前选项卡索引(Current Index)

使用 setCurrentIndex(int index) 方法可以设置当前显示的页面索引,使用 currentIndex() const 方法可以获取当前显示页面的索引。

tabWidget->setCurrentIndex(1); // 切换到第二个页面
int currentIndex = tabWidget->currentIndex(); // 获取当前页面索引

四、内容处理

4.1 添加页面

  • addTab(QWidget *widget, const QString &label):向 QTabWidget 添加一个新页面,并设置页面的标题。

4.2 插入页面

  • insertTab(int index, QWidget *widget, const QString &label):在指定位置插入一个新页面,并设置页面的标题。

4.3 删除页面

  • removeTab(int index):从 QTabWidget 中删除指定位置的页面。

4.4 设置页面标题

  • setTabText(int index, const QString &label):设置指定位置页面的标题。

4.5 获取页面标题

  • tabText(int index) const:获取指定位置页面的标题。

4.6 设置页面图标

  • setTabIcon(int index, const QIcon &icon):设置指定位置页面的图标。

4.8 获取当前页面索引

  • currentIndex() const:获取当前显示页面的索引。

4.9 设置当前页面索引

  • setCurrentIndex(int index):设置当前显示页面的索引。

五、高级功能

5.1 自定义选项卡样式

QTabWidget 允许开发者通过样式表(StyleSheet)自定义选项卡的外观。例如,可以设置选项卡的背景颜色、字体、边框等。

tabWidget->setStyleSheet("QTabBar::tab { background-color: #f0f0f0; color: #000; }");

5.2 选项卡位置

QTabWidget 允许开发者设置选项卡的位置,可以放置在窗口的顶部、底部、左侧或右侧。

tabWidget->setTabPosition(QTabWidget::South); // 将选项卡放置在底部

5.3 选项卡关闭按钮

QTabWidget 支持在每个选项卡上添加关闭按钮,用户可以通过点击关闭按钮来关闭页面。

tabWidget->setTabsClosable(true);
connect(tabWidget, &QTabWidget::tabCloseRequested, [=](int index) {tabWidget->removeTab(index);
});

5.4 选项卡拖拽

QTabWidget 支持选项卡的拖拽功能,用户可以通过拖拽选项卡来重新排列页面的顺序。

tabWidget->setMovable(true);

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

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

相关文章

[MRCTF2020]Ez_bypass1(md5绕过)

[MRCTF2020]Ez_bypass1(md5绕过) ​​ 这道题就是要绕过md5强类型比较,但是本身又不相等: md5无法处理数组,如果传入的是数组进行md5加密,会直接放回NULL,两个NuLL相比较会等于true; 所以?id[]1&gg…

90,【6】攻防世界 WEB Web_php_unserialize

进入靶场 进入靶场 <?php // 定义一个名为 Demo 的类 class Demo { // 定义一个私有属性 $file&#xff0c;默认值为 index.phpprivate $file index.php;// 构造函数&#xff0c;当创建类的实例时会自动调用// 接收一个参数 $file&#xff0c;用于初始化对象的 $file 属…

Jenkins安装部署(以及常见报错解决方案),jdk版本控制器sdkman

目录 零、环境介绍 一、Jenkins安装 1、插件安装以及更换插件源 2、修改jenkins时区 二、sdkman安装&#xff08;可选&#xff09; 1、sdkman常用方法 2、sdkman常用方法演示 2.1、查看可用的jdk 2.2、下载jdk并切换版本 三、jenkins报错解决 1、下载sdkman后systemc…

大数据挖掘--两个角度理解相似度计算理论

文章目录 0 相似度计算可以转换成什么问题1 集合相似度的应用1.1 集合相似度1.1文档相似度1.2 协同过滤用户-用户协同过滤物品-物品协同过滤 1.2 文档的shingling--将文档表示成集合1.2.1 k-shingling1.2.2 基于停用词的 shingling 1.3 最小哈希签名1.4 局部敏感哈希算法&#…

关于贪心学习的文笔记录

贪心&#xff0c;顾名思义就是越贪越好&#xff0c;越多越有易&#xff0c;他给我的感觉是&#xff0c;通常是求最大或最小问题&#xff0c;相比于动态规划贪心让人更加琢磨不透&#xff0c;不易看出方法&#xff0c;为此在这记录我所见过的题型和思维方法&#xff0c;以便回头…

c语言练习题【数据类型、递归、双向链表快速排序】

练习1&#xff1a;数据类型 请写出以下几个数据的数据类型 整数 a a 的地址 存放a的数组 b 存放a的地址的数组 b的地址 c的地址 指向 printf 函数的指针 d 存放 d的数组 整数 a 的类型 数据类型是 int a 的地址 数据类型是 int*&#xff08;指向 int 类型的指针&#xff09; …

联想拯救者Y9000P IRX8 2023 (82WK) 原厂Win11 家庭中文版系统 带一键还原功能 安装教程

安装完重建winre一键还原功能&#xff0c;和电脑出厂时的系统状态一模一样。自动机型专用软件&#xff0c;全部驱动&#xff0c;主题壁纸&#xff0c;自动激活&#xff0c;oem信息等。将电脑系统完全恢复到出厂时状态。 支持机型 (MTM) : 82WK 系统版本&#xff1a;Windows 1…

搜索与图论复习2最短路

单源最短路---所有边权是正数(Dijkstra算法O(n^2)--稠密图(邻接矩阵)和堆优化的Dijkstra算法O(mlogn)--稀疏图(邻接表)) 或存在负边权(Bellman-ford贝尔曼福特算法O(nm)和SPFA一般O(m) 最坏O(nm) ) 多源最短路---Floyd算法O(n^3) 一、迪杰斯特拉算法(Dijkstra)&#xff1a;1…

Unity GetLocalizedString()失效问题

问题&#xff1a; 在一个自定义类中调用GetLocalizedString()的方法&#xff0c;是无效的&#xff08;创建这个自定义类的脚本没挂载到场景中&#xff09;。 解决方法: 将自定义类的GetLocalizedString()方法换个地方&#xff0c;换到在场景中挂载的一个脚本实例&#xff08;…

【建站】专栏目录

建站专栏的想法有很多&#xff0c;想写穷鬼如何快速低成本部署前后端项目让用户能访问到&#xff0c;如何将网站收录到百度&#xff0c;bing&#xff0c;google并优化seo让搜索引擎搜索到网站&#xff0c;想写如何把网站加入google广告或者接入stripe信用卡首款平台收款&#x…

深入解析“legit”的地道用法——从俚语到正式表达:Sam Altman用来形容DeepSeek: legit invigorating(真的令人振奋)

深入解析“legit”的地道用法——从俚语到正式表达 一、引言 在社交媒体、科技圈甚至日常对话中&#xff0c;我们经常会看到或听到“legit”这个词。比如最近 Sam Altman 在 X&#xff08;原 Twitter&#xff09;上发的一条帖子中写道&#xff1a; we will obviously deliver …

Vue 图片引用方式详解:静态资源与动态路径访问

目录 前言1. 引用 public/ 目录2. assets/ 目录3. 远程服务器4. Vue Router 动态访问5. 总结6. 扩展&#xff08;图片不显示&#xff09; 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 在 Vue 开发中&#x…

DeepSeek-R1 本地部署教程(超简版)

文章目录 一、DeepSeek相关网站二、DeepSeek-R1硬件要求三、本地部署DeepSeek-R11. 安装Ollama1.1 Windows1.2 Linux1.3 macOS 2. 下载和运行DeepSeek模型3. 列出本地已下载的模型 四、Ollama命令大全五、常见问题解决附&#xff1a;DeepSeek模型资源 一、DeepSeek相关网站 官…

JVM运行时数据区域-附面试题

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是 依赖用户线程的启动和结束而建立和销毁。 1. 程序计…

什么是LPU?会打破全球算力市场格局吗?

在生成式AI向垂直领域纵深发展的关键节点&#xff0c;一场静默的芯片革命正在改写算力规则。Groq研发的LPU&#xff08;Language Processing Unit&#xff09;凭借其颠覆性架构&#xff0c;不仅突破了传统GPU的性能天花板&#xff0c;更通过与DeepSeek等国产大模型的深度协同&a…

如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?

如何构建ObjC语言编译环境? 除了在线ObjC编译器&#xff0c;本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说&#xff0c;ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…

2月3日星期一今日早报简报微语报早读

2月3日星期一&#xff0c;农历正月初六&#xff0c;早报#微语早读。 1、多个景区发布公告&#xff1a;售票数量已达上限&#xff0c;请游客合理安排行程&#xff1b; 2、2025春节档总票房破70亿&#xff0c;《哪吒之魔童闹海》破31亿&#xff1b; 3、美宣布对中国商品加征10…

DeepSeek 原理解析:与主流大模型的差异及低算力优势

在人工智能大模型蓬勃发展的浪潮中&#xff0c;DeepSeek 以其独特的技术路线和出色的性能表现脱颖而出。与主流大模型相比&#xff0c;DeepSeek 不仅在技术原理上有着显著的差异&#xff0c;还展现出了在较低算力下达到 OpenAI API 水平的卓越能力。本文将深入剖析这些独特之处…

C++ Primer 标准库vector

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.6 广播机制核心算法:维度扩展的数学建模

2.6 广播机制核心算法&#xff1a;维度扩展的数学建模 目录/提纲 #mermaid-svg-IfELXmhcsdH1tW69 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IfELXmhcsdH1tW69 .error-icon{fill:#552222;}#mermaid-svg-IfELXm…