どうすれば画像を再スケーリングしてqwidgetに設定できますか?

StackOverflow https://stackoverflow.com/questions/8805176

  •  26-10-2019
  •  | 
  •  

質問

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); 

ただし、ウィジェットには画像が表示されません。

役に立ちましたか?

解決

スケーリングされた画像をウィジェットに表示しようとしていますか?ブラシに画像を設定してから、パレットにブラシを設定することが正しいアプローチだとは思いません。

qlabelを使用して、ウィジェットに画像を表示することができます。このような:

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

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

他のヒント

パレットを設定する前に、ウィジェットを表示しています。最初にパレットを設定してみてください。

それが役に立たない場合は、完全なファイルパスを指定してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top