如何使用Qt css更改QStackedWidget中QWidget的背景颜色?
ProjectPage* p = new ProjectPage(this);
ui.stackedWidget->addWidget(p);
我的ProjectPage
是Qt设计器中内置的自定义QWidget
。目前我尝试更改设计器中ProjectPage
的背景颜色,但无法正常工作。这是一个失败,因为在我的应用程序中显示的背景颜色是我使用css设置所有QWidget
的默认颜色,唯一的例外是我的ProjectPage
上的所有标签和按钮的颜色都已更改。
我目前无法找到QstackedWidget
css文档。
注意:背景图片工作正常,我正在探索这与我为所有QWidgets设置默认图像有关。
答案 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
中删除默认纹理,或者使用您需要的颜色加载新纹理。