如何使用css更改QStackedWidget内QWidget的背景颜色?

时间:2013-02-05 15:27:48

标签: c++ css qt user-interface

如何使用Qt css更改QStackedWidget中QWidget的背景颜色?

ProjectPage* p = new ProjectPage(this);
ui.stackedWidget->addWidget(p);

我的ProjectPage是Qt设计器中内置的自定义QWidget。目前我尝试更改设计器中ProjectPage的背景颜色,但无法正常工作。这是一个失败,因为在我的应用程序中显示的背景颜色是我使用css设置所有QWidget的默认颜色,唯一的例外是我的ProjectPage上的所有标签和按钮的颜色都已更改。

我目前无法找到QstackedWidget css文档。


注意:背景图片工作正常,我正在探索这与我为所有QWidgets设置默认图像有关。

2 个答案:

答案 0 :(得分:2)

setStyleSheet ("YourQWidgetBasedPageClass#nameOfYourPageWidget {background: white;}");

如果您要覆盖该自定义窗口小部件类的paintEvent,请记住在您的实现中的某处调用默认的QWidget::paintEvent,否则css将无法启动

请注意,只有在您想要选择特定小部件时才需要#name。此外,颜色可以是任何html样式名称:白色,红色,紫色等...以及#XXXXXX样式颜色或使用RGB(...)

答案 1 :(得分:0)

我的问题是由于使用下面的css代码造成的。

QWidget {
    background-image: url(:/texture.png);
}

通过定义默认纹理,您设置的所有背景颜色都隐藏在此纹理后面。

解决方法是从QWidget中删除默认纹理,或者使用您需要的颜色加载新纹理。