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

How to change the background colour of a QWidget inside QStackedWidget using css?

本文关键字:QWidget 背景 颜色 内部 QStackedWidget 何使用 css 更改      更新时间:2023-10-16

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

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

我的ProjectPage是Qt设计器中内置的自定义QWidget。目前,我尝试在设计器中更改ProjectPage的背景色,但没有成功。这是一个失败,因为在我的应用程序中显示的背景颜色是我使用css设置的所有QWidget的默认颜色,唯一的例外是我的ProjectPage上的所有标签和按钮的颜色都发生了变化。

我目前找不到QstackedWidget css文档。


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

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

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

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

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

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

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

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