2012-01-10 9 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

+0

イメージを拡大/縮小しないと機能しますか? –

+0

それはメインウィンドウ – Thorin

答えて

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

+0

この質問を確認してください:http://stackoverflow.com/q/6406940/2174 –

関連する問題