2013-02-05 29 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