2013-02-05 31 views
0

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

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

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


注:背景图片做工精细,我在探索,这是关系到我已经设置的默认图像所有QWidgets的可能性。

回答

0

我的问题是由使用CSS代码如下。

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

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

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

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

,如果你是重写自定义部件类的paintEvent,记得调用默认QWidget::paintEvent某处您的实现或CSS不会

记踢了#名字是,如果只需要你想选择一个特定的小部件。此外,颜色可以是任何html样式名称:白色,红色,紫色等...以及#XXXXXX样式颜色或使用RGB(...)

+0

我使用了默认的paintEvent()方法。我已经在设计师身上做了背景变化,所以我没有办法弄错名字。 – andre

+0

你可以在设计器的特定小部件上设置样式表,如上所述 – cppguy

+0

我已经解决了这个问题。请参阅下面的答案。 – andre