QTabWidget的tabbar右侧背景色设置:QTabWidget背景色设置无效

在设置qss样式的过程中发现,QTabWidget的tabbar右侧空白区域的颜色总是无法设置,也就是tabbar的背景色。tab有自己的背景,容纳tab的区域,如下图标记所示:

经查找资料,各种关键词搜索发现,这片区域是QTabWidget的背景区域,按正常套路可以通过stylesheet中的background属性控制,我尝试设置background却发现并不起作用。
因为QTabWidget是继承于QWidget的,而在stylesheet文档中有这么一段话:

【此图片信息来自lilong(DLC)的文章】

在这里插入图片描述

这段资料告诉我们,如果小部件继承自Qwidget类,一些stylesheet是无法直接控制的。需要重写paintEvent函数,把样式表选项绑定到小部件上。QT的工程师可能觉得有些常用的stylesheet属性都这样写肯定麻烦。

所以直接给我们丢出了一个接口和宏变量。我们可以直接通过这个接口设置需要添加的宏常量属性。而这个接口其实就是我们常常见到的Qt::WidgetAttribute方法。而宏常量是一个枚举类型,可以在QT帮助里搜索这些宏常量,如图:

当我们设置QWidget::setAttribute(Qt::WA_StyledBackground)后,我们就给小部件添加绑定了qss控制。实例如图:

代码片段:

//C++代码中
//给stylesheet添加qt的私有属性
tabWidget->setAttribute(Qt::WA_StyledBackground);
//加载默认样式表,loadStyleSheet为自定义的样式加载方法
this->loadStyleSheet(":styleSheet/default.qss");




//Qss文件中:
QTabWidget{
    background-color:rgb(64, 65, 66);
    font:14px;
    font-family: "Microsoft YaHei";
    font-weight:bold;
    qproperty-iconSize:20px 20px;
}

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开软古剑楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值