news 2026/4/18 7:27:57

QTabWidget+QSS

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QTabWidget+QSS

一、QTabBar

说QTabWidget之前,

我觉得还是先了解下QTabBar比较好些,

毕竟标签控件QTabWidget,

是QTabBar+QStackWidget的组合体。

QTabWidget可管理qss的子控件,

有这么几个:

::tab 标签页

::tear 撕裂指示器

::close-button 标签页关闭按钮

::scroller 滚动按钮的容器

QToolButton::left-arrow 左箭头(滚动左按钮)

QToolButton::left-arrow 右箭头(滚动右按钮)

可管理的伪状态有:

:top 在顶部位置

:bottom 在底部位置

:left 在左边的位置

:right 在右边的位置

:only-one 只有个标签时

:first 第一个标签页

:middle 中间的标签页

:last 最后一个标签页

:selected 当前选中的标签页

:previous-selected 当前选中的前一个标签页

:next-selected 当前选中的后一个标签页

01 伪状态1

QTabBar::tab:previous-selected{ background-color: red; } QTabBar::tab:next-selected{ background-color: green; } QTabBar::tab:selected { background-color: blue; color: #fff; }

先认识下这三个伪状态

被选中的标签页为蓝色,

在它右边的是previois-selected 红色

在它左边的是next-selected 绿色

02 伪状态2

QTabBar::tab:first{ background-color: #1E90FF; } QTabBar::tab:last{ background-color: #9932CC; } QTabBar::tab:middle{ background-color: #32CD32; } QTabBar::tab:selected { background-color: #1E40AF; color: #fff; }

最左边就是 first

最右边就是 last

中间四个就是 middle

被选中时的优先级最高。

03 伪状态3

QTabBar::tab:first{ background-color: #1E90FF; } QTabBar::tab:last{ background-color: #9932CC; } QTabBar::tab:only-one{ background-color: #FF3333; }

最开始有两个标签的时候,

是first和last在起作用;

当我们关闭一个标签的时候,

只剩下一个标签页,

此时由only-one起作用了。

如果还定义了selected的话,

依然是selected的优先最高,

但这是为了演示only-one,

所以就不能定义它。

04 伪状态4

QTabBar::tab:top{ background-color: #FF3333; } QTabBar::tab:bottom{ background-color: #1E90FF; } QTabBar::tab:left{ background-color: #32CD32; } QTabBar::tab:right{ background-color: #00CED1; }

位置状态生效有个前提,

标签必须要在对应的位置才行,

按钮用来辅助动态调整标签位置

//上 void DialogQSSTabBar::on_pushButton_clicked() { ui->tabWidget_5->setTabPosition(QTabWidget::North); } //下 void DialogQSSTabBar::on_pushButton_2_clicked() { ui->tabWidget_5->setTabPosition(QTabWidget::South); } //左 void DialogQSSTabBar::on_pushButton_3_clicked() { ui->tabWidget_5->setTabPosition(QTabWidget::West); } //右 void DialogQSSTabBar::on_pushButton_4_clicked() { ui->tabWidget_5->setTabPosition(QTabWidget::East); }

代码中设置位置的时候,

就变成了地图的方向,

上北,下男,左西,右东。

05 子部件

QTabBar::tear{ background: #FF6600; } QTabBar::close-button{ background: #9932CC; } QTabBar::scroller{ width: 80px; background: #00CED1; } QTabBar QToolButton{ background: red; } QTabBar QToolButton::left-arrow { background: yellow; } QTabBar QToolButton::right-arrow { background: green; }

要让滑动按钮和撕裂指示器出现,

就要求标签页的数量多到让控件装不下。

还是图示下更清楚些:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 10:07:07

Linly-Talker接入GPU加速后性能提升多少?

Linly-Talker接入GPU加速后性能提升多少? 在虚拟主播直播间里,观众提问刚落,数字人几乎立刻转头微笑、张嘴回应,语音流畅自然,口型严丝合缝——这种“类人”的交互体验背后,是一整套高并发、低延迟的AI系统…

作者头像 李华
网站建设 2026/4/18 10:07:05

8.3 需求传递艺术:如何准确向算法团队传达需求

8.3 coze 和他的变量,Function Calling,知识库,数据库,工作流 引言 在前一节中,我们深入探讨了AI Agent的概念、原理以及与AI Copilot的区别。现在,让我们通过一个具体的平台案例——Coze,来深入了解Agent系统的核心组件:变量、Function Calling、知识库、数据库和工…

作者头像 李华
网站建设 2026/4/18 5:58:58

【必收藏】2025大模型新趋势:从生成式AI迈向自主智能体时代

2025年,人工智能领域迎来了关键转折点,我们正从生成式AI迈向Agentic AI,从回应需求的生成式AI,迈向自主规划、执行任务的智能体。谷歌云《2025年AI投资回报率报告》显示,目前使用生成式AI的企业中已有52%在生产环境中部…

作者头像 李华
网站建设 2026/4/18 8:07:21

【Open-AutoGLM协同革命】:如何用1套标准化流程整合5支异构技术团队?

第一章:Open-AutoGLM协同革命的核心理念Open-AutoGLM 的诞生标志着自动化自然语言处理迈向了一个全新的协作范式。其核心理念在于构建一个开放、可扩展、去中心化的智能生成语言模型协作网络,使多个异构模型能够在统一协议下协同推理与训练,打…

作者头像 李华
网站建设 2026/4/17 16:17:48

99%工程师都忽略的提示词细节:Open-AutoGLM系统下的语义对齐陷阱

第一章:Open-AutoGLM系统提示词优化的底层逻辑Open-AutoGLM 作为新一代开源自动语言生成框架,其提示词优化机制建立在动态语义对齐与上下文感知增强的基础之上。该系统通过深度解析用户输入的意图结构,自动重构提示词序列以匹配预训练模型的最…

作者头像 李华
网站建设 2026/4/17 17:07:25

Open-AutoGLM项目交付延迟?7个高频风险点及对应管控机制全解析

第一章:Open-AutoGLM项目多团队协作的挑战本质在大型开源项目如 Open-AutoGLM 中,多团队并行开发是常态。然而,这种协作模式也带来了显著的技术与组织挑战。不同团队可能负责模型训练、推理优化、API 接口开发和文档维护等模块,各…

作者头像 李华