我有QWidget
的派生类,我们称之为DerivedWidget
。我将DerivedWidget
类中的MainWindow
设置为中心窗口小部件。我想更改DerivedWidget
的背景颜色,我尝试了很多方法,它只是不起作用。
DerivedWidget::DerivedWidget(QWidget *parent) : QWidget(parent)
{
mBtn = new QPushButton(this); //if I have some other widgets on this, like a QPushButton
mBtn->setStyleSheet("QPushButton { background-color: red; }"); //it works for the QPushButton on this widget
//tried three ways below to set the widget bgcolor, none of them works
//first
this->setStyleSheet("QWidget { background-color: yellow; }"); //it is not working
//second
this->setObjectName("#DerivedWidget");
this->setStyleSheet("QWidget#DerivedWidget { background-color: yellow; }"); //still not working
//third
this->setStyleSheet("DerivedWidget { background-color: yellow; }"); //not working either
}
正如您所看到的,我可以更改DerivedWidget
上小部件的样式表,但不能更改其背景颜色。
我还尝试更改DerivedWidget
课程中的MainWindow
bgcolor。当然,我尝试的不仅仅是我提供的三种方式,但结果仍然相同。这些方法都没有奏效。如果我只是创建QWidget
并将其设置为MainWindow
类中的中心窗口小部件,我可以轻松地为其设置bgcolor。但为什么我不能为派生类设置bgcolor?
为什么会发生这种情况,我该如何解决这个问题呢?