无法在qt中为QWidget设置派生类的样式表

时间:2018-05-12 06:32:41

标签: c++ css qt qwidget

我有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?

为什么会发生这种情况,我该如何解决这个问题呢?

0 个答案:

没有答案