Si votre image est une ressource ou un fichier, vous n'avez pas besoin de sous-classer quoi que ce soit ; il suffit de définir image
dans la feuille de style de l'étiquette; et elle sera mise à l'échelle pour s'adapter à l'étiquette tout en conservant son ratio, et suivra toutes les modifications de taille apportées à l'étiquette. Vous pouvez optionnellement utiliser image-position
pour déplacer l'image vers l'un des bords.
Cela ne convient pas au cas d'une pixmap mise à jour dynamiquement par l'OP (je veux dire, vous pouvez définir différentes ressources quand vous le souhaitez mais elles doivent toujours être des ressources), mais c'est une bonne méthode si vous utilisez des pixmaps à partir de ressources.
Exemple de feuille de style :
image: url(:/chemin/vers/la/ressource);
image-position: right center; /* optionnel: par défaut, centré */
Dans le code (par exemple) :
QString feuilleDeStyle = "image:url(%1);image-position:right center;";
existingLabel->setStyleSheet(feuilleDeStyle.arg(":/chemin/vers/la/ressource"));
Ou vous pouvez simplement définir la propriété de feuille de style directement dans Designer :
_Source de l'icône: Designspace Team via Flaticon_
L'inconvénient est qu'il ne fera pas grossir l'image, seulement rétrécir, donc assurez-vous que votre image est plus grande que votre gamme de tailles si vous voulez qu'elle grandisse (notez qu'il prend en charge SVG, ce qui peut améliorer la qualité).
La taille de l'étiquette peut être contrôlée comme d'habitude : utilisez soit des éléments de taille dans la feuille de style, soit utilisez les stratégies de disposition et de politique de taille standard.
Voir la documentation pour plus de détails.
Ce style est présent depuis les premières versions de Qt (la position a été ajoutée vers 4.3 environ en 2007 mais l'image était là avant cela).