ホームページ >バックエンド開発 >C++ >QPixmap のアスペクト比を維持するために QLabel のサイズを変更するにはどうすればよいですか?

QPixmap のアスペクト比を維持するために QLabel のサイズを変更するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-29 15:23:02507ブラウズ

How to Resize a QLabel to Maintain the Aspect Ratio of a QPixmap?

Qt: QPixmap のアスペクト比を維持するために QLabel のサイズを変更する

サイズを維持しながらサイズを調整する QLabel 内に QPixmap を表示しようとしています。元のアスペクト比。

解決策:

これを実現するには、サブクラス化せずに QSizePolicy メソッドと sizeHint() メソッドを利用できます。

QSizePolicy 調整:

QSizePolicy::Expanding や QSizePolicy::MinimumExpanding など、QLabel に適切なサイズ ポリシーを選択します。これにより、利用可能なスペースに応じてラベルを拡大または縮小できます。

アスペクト比の維持:

QPixmap が変更されるたびに、アスペクト比を維持しながら拡大縮小できます。 :

<code class="cpp">int w = label->width();
int h = label->height();

label->setPixmap(p.scaled(w,h,Qt::KeepAspectRatio));</code>

イベント処理:

このコードを 2 つの重要な場所に追加します:

  • Pixmap Update: QPixmap が動的に更新されるとき。
  • ResizeEvent: QLabel を含むウィジェットの ResizeEvent 内。これにより、ウィジェットのサイズが変更されてもラベルが適切に拡大縮小されたままになります。

以上がQPixmap のアスペクト比を維持するために QLabel のサイズを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。