2012-04-22 79 views
1

據我所知,你的方式做一個小部件的背景是一個圖像修改參考QStyleSheet說:無法將背景圖片添加到QDockWidget

background-image: url(<your image here>); 

這似乎工作,除非它是QDockWidget的主要部件。

這是我做過什麼:

  1. 做一個全新的Qt Widget項目
  2. 做一個QWidget對象,也許把一個或兩個按鈕,還有以確保你知道它的使用。
  3. 更改樣式表在步驟2中所做的小部件包含:background-image: url(<your image here>);
  4. 在主窗口的UI文件,添加QDockWidget,促進它的主要部件在步驟2中所做的QWidget

當你運行程序,你會注意到QDockWidget的背景仍然是默認的,但是任何按鈕或您添加到窗口小部件的標籤已經改變了他們的背景你選擇的圖像。

當您將qss行從background-image更改爲background-color,並選擇顏色而不是圖像時,小部件確實會更改顏色。

沒有人有給予QDockWidget背景圖像(不只是一個背景色)有什麼建議?

回答

0

顯然,所有你需要做的是與覆蓋部件的痛苦事件:

void MyWidget::paintEvent(QPaintEvent *) 
{ 
    QStyleOption opt; 
    opt.init(this); 
    QPainter p(this); 
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); 
}