news 2026/7/5 13:25:32

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/7/2 0:05:55

手把手教你搞定Open-AutoGLM与国产芯片的驱动级适配(附调试工具包)

第一章:Open-AutoGLM硬件适配的背景与挑战随着大语言模型在自然语言处理领域的广泛应用,Open-AutoGLM作为一款开源的自动化生成语言模型框架,正逐步被部署到多样化的硬件平台中。然而,不同硬件架构在计算能力、内存带宽和并行处理…

作者头像 李华
网站建设 2026/7/5 6:06:49

独家渠道曝光:如何通过GitHub+Discord高效参与Open-AutoGLM开发?

第一章:Open-AutoGLM 开发资源社区获取渠道 Open-AutoGLM 作为一个开源的自动语言生成模型项目,其开发资源和社区支持主要分布在多个公开平台上。开发者可通过以下核心渠道获取最新代码、文档及协作机会。 官方 GitHub 仓库 该项目的主代码库托管于 Git…

作者头像 李华
网站建设 2026/7/4 1:53:26

Open-AutoGLM多语言适配技术内幕(仅限资深工程师查看)

第一章:Open-AutoGLM多语言支持开发实现为实现 Open-AutoGLM 框架的全球化应用,多语言支持成为核心功能之一。系统采用模块化设计,将语言资源与核心逻辑解耦,确保高可维护性与扩展性。国际化架构设计 系统基于 ICU 国际化标准构建…

作者头像 李华
网站建设 2026/7/2 8:53:46

【第65套】加油,同学们!

写在前面车门焊死,考研将至,准备冲刺!我将持续为大家更新25最新真题解析!学得快的同学可以和我一起,全力冲刺~注意,目前我只发布最新年份的真题,其他年份的真题,一个是很…

作者头像 李华
网站建设 2026/7/5 3:48:03

【紧急预警】Open-AutoGLM与旧系统兼容性问题正在摧毁生产环境?

第一章:Open-AutoGLM 与现有系统集成案例在企业级AI应用部署中,Open-AutoGLM 凭借其灵活的接口设计和标准化协议支持,已成功集成至多个异构系统环境中。以下展示其在典型业务场景中的实际对接方案。与企业CRM系统的自然语言工单处理集成 通过…

作者头像 李华
网站建设 2026/7/5 2:58:26

Linly-Talker支持动态光照渲染,提升画面质感

Linly-Talker 支持动态光照渲染,提升画面质感 在虚拟主播、AI客服和数字员工日益普及的今天,用户对数字人“像不像真人”越来越敏感。不只是嘴型能不能对上语音,更在于——这个虚拟形象有没有“灵魂”。而所谓“灵魂”,往往藏在细…

作者头像 李华