2012-01-10 80 views
2
QPixmap pic("../image.jpg"); 

setAutoFillBackground(true); 
QPalette palette; 
QPixmap scaled=pic.scaled (800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation); 

palette.setBrush(QPalette::Window, QBrush(scaled)); 

//this->setPalette(palette); 
QWidget *w= new QWidget(this); 
w->setGeometry(0,0,800,480); 
w->show(); 
w->setPalette(palette); 

但小部件不顯示任何圖像。如何重新調整圖像並將其設置爲QWidget?

+0

不完全確定,但是如果使用QPalette :: Background,會發生什麼情況? – Bart 2012-01-10 16:47:05

+0

當你不縮放圖像時它工作嗎? – 2012-01-10 17:21:26

+0

它與主窗口 – Thorin 2012-01-11 06:57:39

回答

5

你只是試圖顯示縮放圖像的小部件?我不認爲在畫筆中設置圖像,然後在調色板中設置畫筆是正確的方法。

您可以使用QLabel在小部件中顯示圖像。像這樣:

QPixmap pic("../image.png"); 
QPixmap scaled=pic.scaled (800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation); 

QLabel *label = new QLabel(this); 
label->setPixmap(scaled); 
+0

一起工作,但我想顯示一些Qpushbuttons部件,當我使用標籤按鈕不工作(因爲標籤重疊的按鈕),所以我試圖顯示圖像作爲背景通過部件 – Thorin 2012-01-11 06:57:01

+0

如果你只是想改變背景檢查這個問題:http://stackoverflow.com/q/6406940/2174 – 2012-01-11 20:44:39

相關問題