QSS或setStyleSheet如何不影响子窗口风格?
对QWidget的用setStyleSheet,如何使其子窗口widget都保持默认状态,仅仅是父窗口有背景色或背景图片?
如
class A : public QWidget
{
QLabel m_labelTopic;
QLabel m_labelRight;
}
A::A()
{
this->setStyleSheet("QWidget:!hover {background-image:"aaa.png"});
}
如何使其stylesheet不影响m_labelTopic和 m_labelRight?
我使用了QSS的ID选择器:
setStyleSheet("QWidget#myA:!hover {background-image:"aaa.png"});
A myWidget;
myWidget.setObjectName("myA");但没有作用。
恳请各位指点。
[解决办法]
想不影响上面的控件,widget就不要使用setStyleSheet
QPalette pal = palette(); pal.setBrush(backgroundRole(), QBrush(QPixmap("xxx.png"))); setPalette(pal);
[解决办法]
使用类选择器
.QWidget {
background: gray;
}
注意在QWidget前面那个小点,即是使用类选择器:这个style sheet只影响名为QWidget的对象,不会影响他的子组件。