2017-02-18 2 views
1

Le problème est assez simple. J'ai un objet QLabel qui obtient une image via la définition d'une ressource à l'attribut pixmap. Parce que le Qt Designer est le meilleur Designer graphique du monde (jamais), il montre l'image ayant subi une rotation de 90 ° à gauche:Qt - Comment faire pivoter un QLabel dans Qt Creator UI Designer

QLabel which I want to rotate

Comment puis-je tourner le QLabel?

Je serais également heureux si quelqu'un pouvait me dire pourquoi le Qt Creator tourne l'image elle-même. Windows (le meilleur système d'exploitation jamais) dit qu'il a une largeur de 88 px et une hauteur de 923 px:

Ici Breite == Width et Höhe == Height (Höhe, Breite est allemande (meilleure langue jamais)):

Width and Height

J'apprécie votre aide!

Répondre

1

Si j'étais vous je ferais pivoter l'image, puis définir le pixmap d'étiquette. Peut-être pas la meilleure solution, mais cela fonctionne.

Pour faire pivoter l'image que vous pouvez faire quelque chose comme ceci:

QPixmap original; 
// load original from your source or take it from somewhere 
QImage srcImg = original.toImage(); 
QPoint center = srcImg.rect().center(); 
QMatrix matrix; 
matrix.translate(center.x(), center.y()); 
matrix.rotate(90); 
QImage dstImg = srcImge.transformed(matrix); 
QPixmap dstPix = QPixmap::fromImage(dstImg); //New pixmap rotated 

Maintenant, vous avez le nouveau prêt à QPixmap mis en rotation être défini comme QLabel pixmap. Si vous avez l'image originale sur votre ordinateur, une solution encore plus bête et plus facile serait de faire pivoter l'image originale avec n'importe quel logiciel d'image et de le charger directement.

QPixmap verticalPixmap('/path/to/image/rotatedImage.jpg'); 
+0

Thx ... Ce que je ne l'ai pas mentionné est que je fait pivoter les l'image avec _Paint_ mais malheureusement Qt l'a mis dedans comme l'original .... J'ai dû réellement copier l'image. – goulashsoup

0

Il est nécessaire de copier l'image après la rotation parce que le Créateur Qt (pourquoi toujours) pas adopter la rotation ...

+0

C'est peut-être le cache. J'imagine... –