0

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

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

MyProjectPageQWidget在 Qt 设计器中定制的。目前我尝试在设计器中更改背景颜色ProjectPage,但未能奏效。这是一个失败,因为在我的应用程序中显示的背景颜色是我QWidget使用 css 设置的默认颜色,唯一的例外是我的所有标签和按钮ProjectPage都改变了颜色。

我目前无法找到QstackedWidgetcss 文档。


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

4

2 回答 2

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

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

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

于 2013-02-05T19:55:10.787 回答
0

我的问题是由使用下面的 css 代码引起的。

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

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

解决方案是从默认纹理中删除QWidget或加载具有所需颜色的新纹理。

于 2013-02-05T21:31:42.390 回答