Qt子控件样式不生效,因为父控件样式设定
在帮助中搜索qt style sheets
找到这句话:
If we want the property to apply only to one specific QLineEdit, we can give it a name using QObject::setObjectName() and use an ID Selector to refer to it:
意思是如果不想子控件继承父控件,就在父控件加#
if(m_MainWidget.objectName().isEmpty()){ m_MainWidget.setObjectName("backLineEdit"); } m_MainWidget.setStyleSheet("QWidget#backLineEdit{border-image:url(:/image/background.jpg);}");
m_MainWidget是父控件,先setObjectName一个名,随便起一个,然后#加上这个名字。这样子控件就不会继承父控件的样式了。