Maison  >  Article  >  développement back-end  >  Comment conserver les proportions lors de l'affichage d'images dans QLabel de Qt ?

Comment conserver les proportions lors de l'affichage d'images dans QLabel de Qt ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 22:10:02368parcourir

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

Préserver les proportions dans le QLabel de Qt avec QPixmap

Dans Qt, afficher une image dans un QLabel pose souvent le défi de redimensionner tout en préservant ses proportions. Ceci est particulièrement important lorsqu'il s'agit de changements dynamiques dans les dimensions de l'image source.

Conserver les proportions avec la politique de taille

Pour résoudre ce problème, ajustez la QSizePolicy de l'étiquette. pour permettre une expansion ou une expansion minimale. Par exemple :

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

Mise à l'échelle du QPixmap

Pour mettre à l'échelle le QPixmap dans le QLabel tout en conservant l'aspect ratio, ajoutez le code suivant :

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

Insérez ce code à deux emplacements :

  1. Chaque fois que la pixmap est mise à jour
  2. Dans le resizeEvent du widget contenant le label

Cette configuration garantit que le QLabel se redimensionne pour accueillir le QPixmap tout en préservant ses proportions, en suivant l'espace disponible .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn