0

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

2 に答える 2

1

ドキュメントで説明されているように、問題はwordwraplabel_title でした。label_main の動作がおかしくて、label_title で原因を見つけるのが困難でした。

于 2012-09-26T11:25:07.993 に答える
0

おそらく、ウィンドウ サイズの測定値を間違って使用していることが原因です。ボックス モデルの観点から考えており、ジオメトリにアクセスすると、測定方法が異なります。

http://qt-project.org/doc/qt-5.0/stylesheet-customizing.html

http://qt-project.org/doc/qt-4.8/application-windows.html#window-geometry

コード サンプルがないと、何が問題なのかを正確に理解することは困難です。

それが役立つことを願っています。

于 2012-09-25T23:07:25.903 に答える