2011-01-12 23 views
7

W mojej aplikacji chcę obrócić obraz (ustawiłem obraz na QLabel). Ustawiłem jeden QPushButton, klikając przycisk, który chcę obrócić obraz w czterech kierunkach (prawo-> dół-> lewo-> góra)Obrót obrazu w Qt

Każda pomoc?

Odpowiedz

16

zakładając, że masz wskaźnik do swojej QLabel mógłby zrobić coś jak

void MyWidget::rotateLabel() 
{ 
    QPixmap pixmap(*my_label->pixmap()); 
    QMatrix rm; 
    rm.rotate(90); 
    pixmap = pixmap.transformed(rm); 
    my_label->setPixmap(pixmap); 
} 

Spowoduje to przejście przez Prawo, Dół, Lewo, Góra w czterech aplikacjach.

+1

Otrzymuję to dla pierwszego wiersza, w którym wypełnia się nowo utworzoną pixmapę za pomocą my_label-> pixmap(): "QPixmap :: QPixmap (QPixmapData *)": nie można przekonwertować parametru 1 z "const QPixmap *" na "QPixmapData *" " – PathOfNeo

+4

+1: Cool działa! Mogę tylko pozwolić mi dodać jedną uwagę, QMatrix jest w międzyczasie zdeprawowana, Zastąpienie QMatrix przez QTransform byłoby zgodne z Qt4.8, Qt5 lepiej. –