QT样式表qss设置后无效的原因大全

设置样式表无非两种方式,1是直接在ui设计师界面填写,这样所见即所得,2是用代码setStylesheet。

不过令人困惑的是,经常设置了样式表之后,运行出的结果与预期不符,总结可能有以下原因:

1、子控件如果设置了样式表,那么他会把从父控件送来的【同选择器】下的样式表覆盖。

注:【样式表选择器】是专业术语,请自行搜索学习。

2、子类如果设置了样式表,那么从父类继承来的【同选择器】下的样式表覆盖。

注:子类和子控件不是一个概念。子控件是QWidget的树状关系。

3、子类化QWidget后的类,设置样式表无效。

官方手册已经特别指出了这个问题,解决方案是,在QWidget的子类中覆盖painterEvent函数

4、UI设计师界面设置过qss,而后又把编辑样式表的框删干净了。这不算完,因为属性列表会显示为粗体,这样qt会自动生成这种空样式表的代码: this->setStyleSheet(""); 要想真正删除,必须点击还原按钮。

这一点相当隐蔽,需要特别检察。

5、用代码设置的qss会覆盖在ui设计师界面填写的【同选择器】下的qss。因为我们常把自己的代码,在构造函数中,放到qt自动生成的 ui->setupUi(this); 后面。如果你调换了顺序,那就是代码设置的qss无效,而ui设计师设置的有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值