首页 > 解决方案 > 'QScrollBar:vertical' 与 QComboBox 样式表中的其他子控件放在一起时无效

问题描述

我正在使用 Qt Creator 4.5.2(Qt 5.9.5,GCC 7.3.0 64 位)并在 Ubuntu 18.04 上运行。

我有一个 QComboBox 并试图设置它的样式表。但是,我有以下问题:

如果我做:

setStyleSheet("selection-color: rgb(255, 0, 0);"); 

或者

setStyleSheet("QScrollBar:vertical {background: red;}");

单独地,样式表是有效的。

但是,如果我把它们放在一起,比如:

setStyleSheet("selection-color: rgb(255, 0, 0); QScrollBar:vertical {background: red;}");

样式表无效。我已经在代码和 QT Designer 中尝试过。在编码中,我得到了这个:无法解析对象 0x555556118eb0 的样式表。在 QT 设计器中,它只是声明“无效样式表”

为什么?

标签: qtqtstylesheets

解决方案


从您所指出的可以推断,如果您设置属性而不将小部件类指示为选择器,那么将假定属性将影响同一个小部件,但似乎如果您设置了至少一个选择器,那么您必须设置所有元素的选择器,在您的情况下,您可以使用:

QComboBox{selection-color: rgb(255, 0, 0);}
QScrollBar:vertical{background: red;}

推荐阅读