C++ 自定义QWidget未继承父样式表

C++ 自定义QWidget未继承父样式表,c++,linux,qt5.2,C++,Linux,Qt5.2,我有一个定制的QWidget类,据我所知,它似乎没有继承其父类的样式表。我在自定义类的构造函数中打印出父样式表,它肯定是具有正确样式表的正确父样式表 MyWidget::MyWidget(QWidget *parent_) : QWidget(parent_) { std::cout << "parent is " << parent_->objectName().toStdString() << std::endl; std::

我有一个定制的QWidget类,据我所知,它似乎没有继承其父类的样式表。我在自定义类的构造函数中打印出父样式表,它肯定是具有正确样式表的正确父样式表

MyWidget::MyWidget(QWidget *parent_) :
    QWidget(parent_)
{
    std::cout << "parent is " << parent_->objectName().toStdString() << std::endl;
    std::cout << "stylesheet is: " << parent_->styleSheet().toStdString() << std::endl;

我的理解是,这不应该是必要的。我的程序中的其他小部件似乎不需要它。我做错了什么会阻止它工作?

您可以用一个
样式表来完成这项工作

给小部件子类
objectName

widget->setObjectName("family");
widget_2->setObjectName("family");
应用
样式表

qApp->setStyleSheet(stylesheet);
其中
样式表
有下一个代码:

#family
{
background-color: green
}
所有具有族对象名称的小部件都会获得此
样式表

如果设置:

widget->setObjectName("family");//only this widget has stylesheet
widget_2->setObjectName("notFamily");

为什么它好?您可以编写带有所有元素设置的特殊样式表,将其另存为文件,将其放入资源中并使用它,这很容易调试,因为您的样式表放在一个地方,

结果是MyWidget在某个时候被重新出租,并且新的父级有一个恶意样式表覆盖了主级联样式表。删除中间样式表使所有内容都重新开始工作。

这基本上就是我试图使用我父母的样式表所做的。有一些公共设置应该同时应用于父和子QWidget。我只是不知道为什么它不会自动级联。级联在其他情况下似乎可以正常工作,所以我不知道上面的MyWidget类中有什么不适合级联。@KyleL您想说当您编写QWidget{background color:green}时,您的MyWidget不会改变吗?
widget->setObjectName("family");//only this widget has stylesheet
widget_2->setObjectName("notFamily");