ホームページ >バックエンド開発 >C++ >Qt の QLabel で画像を表示するときにアスペクト比を維持するにはどうすればよいですか?

Qt の QLabel で画像を表示するときにアスペクト比を維持するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 22:10:02524ブラウズ

How to Maintain Aspect Ratio When Displaying Images in Qt's QLabel?

QPixmap を使用して Qt の QLabel のアスペクト比を維持する

Qt で、QLabel に画像を表示する では、アスペクト比を維持しながらサイズを変更するという課題がしばしば発生します。これは、ソース画像のサイズの動的な変更を扱う場合に特に重要です。

サイズ ポリシーによるアスペクト比の維持

これに対処するには、ラベルの QSizePolicy を調整します。 は拡張または最小限の拡張を可能にします。例:

<code class="cpp">QLabel label;
label.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);</code>

QPixmap のスケーリング

アスペクトを維持しながら QLabel 内の QPixmap をスケーリングするには

<code class="cpp">QPixmap pixmap; // Assumed loaded from a source
int labelWidth = label.width();
int labelHeight = label.height();
label.setPixmap(pixmap.scaled(labelWidth, labelHeight, Qt::KeepAspectRatio));</code>

このコードを 2 つの場所に挿入します:

  1. ピックスマップが更新されるたび
  2. resizeEvent
を含むウィジェットの 🎜> この設定により、

QLabel は、使用可能なスペースに従ってアスペクト比を維持しながら QPixmap に合わせてサイズ変更されます。 .

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

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