网站首页 > 博客文章 正文
Qt样式表(Qt Style Sheet,QSS)是一种强大的机制,可以自定义widget的几乎任何外观。本文利用样式表,对于QTabWidget组件,实现动态显示和隐藏Tab的功能。下面对具体步骤进行介绍。
利用窗口设计器设置样式
Qt Designer是预览样式表的优秀工具。右键单击设计器中的QTabWidget,然后选择“Change styleSheet...”设置样式表。
在Qt 4.2及更高版本中,Qt Designer还包括一个样式表语法高亮显示和验证器。验证器在“Edit Style Sheet”对话框的左下角指示语法是否有效。
当你单击“OK”或“Apply”时,Qt Designer将自动显示新样式的widget。这里设置了Tab的高度和宽度。
编写动态样式代码
先编写一个setQss函数,其功能是分别设置enable和disabled的卡片的属性。对于disabled的卡片,这里的关键是设置其宽度为0,同时颜色为透明。
void Widget::setQss()
{
ui->tabWidget->setStyleSheet("QTabBar::tab:enabled{width:130;height:40}"
"QTabBar::tab:disabled{width:0;height:40;color:transparent;}");
}
编写按钮响应代码
分别为显示(btnDisp)按钮和隐藏(btnHide)按钮添加启用和禁用某个Tab的代码,然后调用setQss()函数设置样式即可。
void Widget::on_btnDisp_clicked()
{
int id = ui->spinBox->value();
ui->tabWidget->setTabEnabled(id,true);
setQss();
}
void Widget::on_btnHide_clicked()
{
int id = ui->spinBox->value();
ui->tabWidget->setTabEnabled(id,false);
setQss();
}
预览效果:
启动程序后的界面如下图:
点击“隐藏”按钮,Tab 1卡片消失不见了(spinBox中的值为0,表示第一个Tab)。点击“显示”按钮,Tab 1将重新出现。
关于QSS的详细介绍见我之前的文章:
猜你喜欢
- 2025-01-23 Qt添加图标(qt中添加图片)
- 2025-01-23 Mac上调试QT客户端(qt在mac下开发)
- 2025-01-23 Qt使用教程:指定生成设置(二)(qt如何使用c++)
- 2025-01-23 QT实现简单的上位机软件(基于qt的上位机 开发需要用到哪些内容)
- 2025-01-23 Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
- 2025-01-23 Qt使用QSS(qt弹出子窗体后,父窗体按钮不可以使用)
- 2025-01-23 Qt入门_设计find对话框(qt怎么设置对话框大小固定)
- 2025-01-23 从零开始学Qt(39):QFileDialog对话框的使用
- 2025-01-23 Qt 制作登录对话框(qt制作登录界面)
- 2025-01-23 Qt 窗口部件(qt新窗口)
你 发表评论:
欢迎- 368℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 347℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 343℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)