QSizePolicy::Expanding
で画像を表示したい両方の次元でsizepolicy を持つ QLabel がありQLabel::setPixmap
ます。メインウィンドウのサイズを変更しないでください。そのため、QLabel のサイズに設定する前にピックスマップをスケーリングします。
画像は正しく設定されていますが、上部と下部には、上部 12px、下部 13px の不要なパディングがあります。-setPixmap
コマンドは、QLabel とメインウィンドウのサイズを変更します。理由がわかりません。QLabel のスタイルシートが空です。QLabel-background に色を付けて、余分なスペースが QLabel のパディング (またはピックスマップのマージン) であることを確認できます。メインウィンドウのサイズを変更しようとすると、この余分な境界線が消えるほど小さくすることはできません。拡大すると、パディングがすべての側面で増加します (予想どおり)。しかし、小さくして取り除くことはできません。この余分なマージン。
誰がこれを引き起こす可能性があるか知っていますか?
編集:
いくつかのコードを追加しました。これらの行の前ui->label_title
は空label_title
で、 のすぐ上にある同じ垂直レイアウトになっていlabel_main
ます。一部のテキストが label_title に設定されている場合、レイアウトはまだ更新されていないため、次の行は古いサイズを返し、タイトルがスペースを取り、メインウィンドウのサイズを変更する必要があるため、画像が大きすぎると思いました。レイアウトを更新するコマンドはありますか? その中のすべてのウィジェットが新しいサイズになりますか? layout->update();
うまくいきませんでした。
ui->label_title->setText(imgNames.at(crntItemNr));
QSize size = ui->label_main->size();
ui->label_main->setPixmap(images.at(crntItemNr).scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation));