2011-01-12 12 views
7

Nella mia applicazione voglio ruotare l'immagine (ho impostato l'immagine su QLabel). Ho impostato uno QPushButton, al clic su quel pulsante Voglio ruotare la mia immagine in Quattro direzioni (Destra-> In basso-> Sinistra-> In alto)Ruota immagine in Qt

Qualsiasi aiuto?

risposta

16

Dando per scontato che hanno un puntatore al QLabel si potrebbe fare qualcosa di simile

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

Questo vi porterà attraverso destra, in basso, a sinistra, piano in quattro applicazioni.

+1

ottengo questo per la prima riga in cui si riempie la nuova pixmap con my_label-> pixmap(): 'QPixmap :: QPixmap (QPixmapData *)': impossibile convertire il parametro 1 da 'const QPixmap *' a 'QPixmapData *' " – PathOfNeo

+4

+1: Cool funziona! Mi permetterebbe solo di aggiungere un commento QMatrix è nel frattempo privato. Sostituire QMatrix di QTransform sarebbe conforme a Qt4.8, Qt5 meglio. –