Maison >développement back-end >C++ >Comment redimensionner un QLabel pour conserver les proportions d'un QPixmap ?

Comment redimensionner un QLabel pour conserver les proportions d'un QPixmap ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 15:23:02508parcourir

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

Qt : redimensionner QLabel pour conserver les proportions de QPixmap

Vous cherchez à afficher un QPixmap à l'intérieur d'un QLabel qui ajuste sa taille tout en conservant le rapport hauteur/largeur d'origine.

Solution :

Pour y parvenir, vous pouvez exploiter les méthodes QSizePolicy et sizeHint() sans avoir besoin de sous-classement.

Ajustement QSizePolicy :

Sélectionnez une politique de taille appropriée pour votre QLabel, telle que QSizePolicy::Expanding ou QSizePolicy::MinimumExpanding. Cela permettra à l'étiquette de s'agrandir ou de se rétrécir en fonction de l'espace disponible.

Préserver les proportions :

Chaque fois que le QPixmap change, vous pouvez le redimensionner tout en préservant ses proportions. :

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

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

Gestion des événements :

Ajoutez ce code à deux endroits clés :

  • Mise à jour Pixmap : Lorsque le QPixmap est mis à jour dynamiquement.
  • ResizeEvent : Dans le resizeEvent du widget contenant le QLabel. Cela garantit que l'étiquette reste correctement mise à l'échelle même lorsque le widget change de taille.

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