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

Qt应用开发(基础篇)——选项卡窗口 QTabWidget

  一、前言      

         QTabWidget类继承于QWidget,是一个拥有选项卡的窗口部件。

        QTabWidget类有一个选项卡栏QTabBar和一个页面区域,用来显示和选项卡相关联的界面。用户通过点击选项卡或者自定义快捷方式(ALT+Key)切换页面。

二、QTabWidget类

1、count

        该属性表示当前选项卡的数量。

int count() const

2、currentIndex

        该属性表示当前选项卡的索引,下标从0开始,如果没有部件则返回-1。

int currentIndex() const
void setCurrentIndex(int index)

3、documentMode

        该属性表示选项卡栏是否设置为文档模式,默认禁用。这与macOS上的文档模式相同。启用时,不会呈现选项卡部件框架,即选项卡页面和其后的窗口等页面无框架区分看起来是一个整体。此模式对于页面需要显示文档类型的情况非常有用,因为节省了选项卡部件框架占用的部分空间。

bool documentMode() const
void setDocumentMode(bool set)
文档模式

 

默认模式

 4、elideMode

        该属性表示在没有足够的空间显示给定选项卡栏大小的时候如何省略内容的策略。

Qt::TextElideMode elideMode() const
void setElideMode(Qt::TextElideMode mode)
定义描述
Qt::ElideLeft省略号应该出现在文本的开头
Qt::ElideRight省略号应该出现在文本的末尾
Qt::ElideMiddle省略号应该出现在文本的中间
Qt::ElideNone省略号不应该出现在文本中。

Qt::ElideLeft

 6、iconSize

        该属性表示选项卡标签的图标最大尺寸,图标原尺寸太大会被压缩,太小不会被放大。

QSize iconSize() const
void setIconSize(const QSize &size)

7、movable

        该属性表示是否可以移动选项卡,默认选项卡是不可移动的。

bool isMovable() const
void setMovable(bool movable)

8、tabBarAutoHide

        该属性表示当选项卡栏包含少于2个选项卡时,选项卡栏是否自动隐藏,默认不隐藏。

bool tabBarAutoHide() const
void setTabBarAutoHide(bool enabled)

9、tabPosition

        该属性表示选项卡的位置,默认QTabWidget::North,在上方。

QTabWidget::TabPosition tabPosition() const
void setTabPosition(QTabWidget::TabPosition position)
定义描述
QTabWidget::North选项卡绘制在页面的上面
QTabWidget::South选项卡绘制在页面的下面
QTabWidget::West选项卡绘制在页面的左侧
QTabWidget::East选项卡绘制在页面的右侧
QTabWidget::South

 

10、tabShape

        该属性表示选项卡角的形状,默认QTabWidget::Rounded圆角。

QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape s)
定义描述
QTabWidget::Rounded选项卡以圆形外观绘制
QTabWidget::Triangular选项卡以三角形外观绘制

QTabWidget::Triangular

 11、tabsClosable

        该属性表示选项卡栏是否应该在每个选项卡上放置关闭按钮。

bool tabsClosable() const
void setTabsClosable(bool closeable)

12、usesScrollButtons

        该属性表示,选项卡显示不下的时候是否使用按钮来滚动选项卡。

bool usesScrollButtons() const
void setUsesScrollButtons(bool useButtons)

13、公共函数

1)addTab

        新增选项卡、页面、标签和图标,返回选项卡的索引。

        如果标签包含“&”,那么将启用“ALT+Key”快捷方式,快速打开某选项卡。

        如果动态添加选项卡,需要先把setUpdatesEnabled设置为false,更新完成之后在设置为true,防止出现界面闪烁的情况。

int addTab(QWidget *page, const QString &label)
int addTab(QWidget *page, const QIcon &icon, const QString &label)

2)insertTab

        插入选项卡、页面、标签和图标,如果超出范围插入到尾部,返回选项卡的实际索引。其他注意事项参考addTab

 int insertTab(int index, QWidget *page, const QString &label)int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label)

3)removeTab

        从选项卡中移除小部件,小部件本身不会被删除。

void removeTab(int index)

4)clear

        移除全部小部件。

void clear()

5)currentWidget

        返回当前页面显示的部件,如果选项卡为空,则返回nullptr。

QWidget *currentWidget() const

6)setCurrentWidget

        设置当前要显示的部件,传入的指针必须为有效值。

void setCurrentWidget(QWidget *widget)

7)setCornerWidget

        设置角部件,防止在选项卡旁边,基于选项卡的方向tabPosition赋值。

void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
定义描述
Qt::TopLeftCorner矩形的左上角。
Qt::TopRightCorner矩形的右上角。
Qt::BottomLeftCorner矩形的左下角。
Qt::BottomRightCorner矩形的右下角。

Qt::TopLeftCorner

8)cornerWidget

        返回角部件方向。

QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const

9)indexOf

        查找某部件指针,返回选项卡索引,不存在则返回-1。

int indexOf(QWidget *w) const

10)widget

        查找某部件选项卡索引,返回小部件指针,不存在返回nullptr。

QWidget *widget(int index) const

11)setTabEnable

        设置某选项卡使能,设置为false将不可选中显示部件,如果全部选项都是false,那么将显示其中的一个。

void setTabEnabled(int index, bool enable)
setTabEnable(2,false)

12)isTabEnabled

        获取索引处index对应的选项使能。

bool isTabEnabled(int index) const

13)setTabIcon

        设置索引index对应的选项卡图标。

void setTabIcon(int index, const QIcon &icon)

14)tabIcon 

        获取索引index对应的图标。

QIcon tabIcon(int index) const

15)setTabText

        设置索引处index对应的选项卡文本。

void setTabText(int index, const QString &label)

16)tabText 

        获取索引处index对应的文本。

QString tabText(int index) const

 17)setTabToolTip

        设置索引处index对应的选项卡提示语。

void setTabToolTip(int index, const QString &label)

18)tabToolTip

        获取索引处index对应的提示语。

QString tabToolTip(int index) const

19)setTabVisible

        设置索引处index对应的选项卡是否隐藏。

void setTabVisible(int index, bool visible)

20)isTabVisible 

        获取索引处index对应的选项卡是否隐藏。

bool isTabVisible(int index) const

21)setTabWhatsThis 

        设置索引处index页面的“这是什么”帮助文本设置为文本。

void setTabWhatsThis(int index, const QString &text)

22)tabWhatsThis 

        获取索引index页面的帮助文本。

QString tabWhatsThis(int index) const

14、信号

1)currentChanged       

        页面切换触发。

void currentChanged(int index)

2)tabBarClicked

        点击选项栏触发。

void tabBarClicked(int index)

3)tabBarDoubleClicked

        双击选项栏触发。

void tabBarDoubleClicked(int index)

 4)tabCloseRequested

        选项栏关闭触发。

void tabCloseRequested(int index)

相关文章:

Qt应用开发(基础篇)——选项卡窗口 QTabWidget

一、前言 QTabWidget类继承于QWidget,是一个拥有选项卡的窗口部件。 QTabWidget类有一个选项卡栏QTabBar和一个页面区域,用来显示和选项卡相关联的界面。用户通过点击选项卡或者自定义快捷方式(ALTKey)切换页面。 二、QTabWidget类 1、count 该属…...

Socks5代理在多线程爬虫中的应用

在进行爬虫开发过程中,我们常常需要处理大量的数据,并执行多任务并发操作。然而,频繁的请求可能会引起目标网站的反爬机制,导致IP封禁或限制访问。为了规避这些限制,我们可以借助Socks5代理的强大功能,通过…...

机器学习笔记:主动学习(Active Learning)初探

1 基本介绍 监督学习问题中,存在标记成本昂贵且难以大量获取的问题。 针对一些特定任务,只有行业专家才能为样本做上准确标记。在此问题背景下,主动学习(Active Learning, AL)尝试通过选择性地标记较少数据而训练出表…...

linux github 仓库管理常用操作

linux 的常用操作 linux 本地 ssh验证连接github账号本地仓库连接远程私有仓库push/pull操作 Connecting to Github with ssh git local configuration If you are using git for the first time, configure the user name and email in the device. git config --global u…...

IT运维:使用数据分析平台监控深信服防火墙

概述 深信服防火墙自身监控可以满足绝大部分需求,比如哪个应用占了最大带宽,哪个用户访问了哪些网站?这里我们为什么使用鸿鹄呢?因为我们要的是数据的处理和分析,比如某个用户在某个事件都做了哪些行为,这个…...

深入解析 Axios Blob 的使用方法及技巧

在 Web 开发中,处理文件传输是一个常见的需求。Blob(二进制对象)是一种表示二进制数据的方式,常用于处理文件和多媒体数据。本文将介绍如何使用 Axios 和 Blob 来处理文件传输。 Axios Blob 概念 在开始之前,让我们先…...

爬虫逆向实战(十三)--某课网登录

一、数据接口分析 主页地址:某课网 1、抓包 通过抓包可以发现登录接口是user/login 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个password加密参数,还有一个browser_key这个可以写死不需要关心 请求头…...

4.SpringCloud

1.SpringCloud概述 Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,…...

OLED透明屏采购指南:如何选择高质量产品?

着科技的不断进步,OLED透明屏作为一种创新的显示技术,在各个行业中得到了广泛应用。 在进行OLED透明屏采购时,选择高质量的产品至关重要。在这篇文章中,尼伽将为您提供一个全面的OLED透明屏采购指南,帮助您了解关键步…...

机器学习编译系列

机器学习编译MLC 1. 引言2. 机器学习编译--概述2.1 什么是机器学习编译 1. 引言 陈天奇目前任教于CMU,研究方向为机器学习系统。他是TVM、MXNET、XGBoost的主要作者。2022年夏天,陈天奇在B站开设了《机器学习编译》的课程。   《机器学习编译》课程共分…...

MySQL 数据库巡检系统的设计与应用

文章目录 MySQL 数据库巡检系统的设计与应用引言1. 设计思路1.1 数据采集模块1.2 数据分析模块1.3 前端展示模块1.4 报警模块2. 实现步骤2.1 数据采集2.2 数据分析2.3 前端展示2.4 报警模块3. 应用案例3.1 数据采集步骤一:安装 Zabbix Agent步骤二:添加监控项步骤三:添加用户…...

工程项目管理系统源码+功能清单+项目模块+spring cloud +spring boot em

​ 工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…...

前端笔试+面试分享

以下是个人线下面试遇到的真实的题,仅供参考和学习 1. css 选择符有哪些?哪些属性可以继承?优先级算法加何计算? CSS选择符有很多种,例如类型选择器、类选择器、ID选择器、属性选择器、伪类选择器、伪元素选择器等。 …...

C Language Handout

明天(9月3日)上课时间 上午:09:30 - 12:00 下午:14:30 - 17:00 周末 - 务必 - 找一下报名/班主任老师 - 确认账号是否为正式账号 今日内容: 一.第一个C语言程序 mkdir /home/tarena/stdc/day03 -p cd /home/tarena/stdc/day03 vim hello.c #include <stdio.h> /* 这是…...

数据结构——栈(C语言)

需求&#xff1a;无 栈的概念&#xff1a; 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端为栈底。栈中的数据元素遵守后进先出&#xff08;LIFO&#xff09;原则。压栈&…...

Linux 内核内存管理 page_address 函数

文章目录 一、page_address1.1 page_address1.2 page_to_pfn1.3 PFN_PHYS1.4 __va(x)1.5 总结1.6 page_to_virt 二、使用demo 一、page_address 1.1 page_address 内核用 struct page 结构体来表示系统中的每个物理页面&#xff0c;该结构体用来跟踪和管理这些物理页面的使用…...

macOS使用ffmpeg与QT进行音视频推拉流

1.先启动流服务器 ./mediamtx 2.开始推流: ffmpeg -re -stream_loop -1 -i /Users/hackerx/Desktop/test.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 3. 安装ffmpeg 4.4 brew install ffmpeg4 4.添加ffmpeg头文件目录与库目录 5.链接ffmpeg相关库…...

ARTS打卡:双指针的尝试

替换空格 <?php class Solution {/*** param String $s* return String*/function replaceSpace($s) {$arrstr_split($s); //转化成数组foreach($arr as &$item){if($item ){//执行替换操作$item%20;}}return implode(,$arr); //数组转化成字符串返回} } 反转链表…...

JavaWeb-DAO设计模式

目录 DAO设计模式 1.认识DAO 2.DAO各部分的详解 3.DAO设计模式流程 DAO设计模式 1.认识DAO DAO(Data Acess Object 数据库访问对象)的主要功能是操作数据库&#xff0c;所以DAO在标准开发架构中数据数据层&#xff0c;以下是标准开发的架构 客户层&#xff1a;目前使用B/…...

重温git和GitHub

1.初始化本地库:让git获取到这个目录的管理权 git init 查看文件夹的文件命令&#xff1a;ll 查看文件夹的隐藏的文件命令:ll -a 查看状态的命令&#xff1a;git status cat文件名&#xff1a;查看文件内容 工作区&#xff1a;当git status时&#xff0c;名字为红色则在工作区&…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙&#xff08;HarmonyOS5&#xff09;中集成百度地图&#xff0c;可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API&#xff0c;可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​&#xff1a;下载安装 ​​De…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...