首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QSS或setStyleSheet怎么不影响子窗口风格

2012-03-15 
QSS或setStyleSheet如何不影响子窗口风格?对QWidget的用setStyleSheet,如何使其子窗口widget都保持默认状

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

C/C++ code
    QPalette pal = palette();    pal.setBrush(backgroundRole(), QBrush(QPixmap("xxx.png")));    setPalette(pal);
[解决办法]
使用类选择器
.QWidget {
background: gray;
}

注意在QWidget前面那个小点,即是使用类选择器:这个style sheet只影响名为QWidget的对象,不会影响他的子组件。

热点排行