2011-01-12 3 views
7

В моем приложении я хочу повернуть изображение (я установил изображение на QLabel). Я установил один QPushButton, нажав эту кнопку, я хочу повернуть свое изображение в четырех направлениях (вправо-> снизу-> влево-> вверху)Повернуть изображение в Qt

Любая помощь?

ответ

16

Предполагая, что у вас есть указатель на ваш QLabel вы могли бы сделать что-то вроде

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

Это приведет вас через Right, Bottom, Left, Top в четырех приложениях.

+1

Я получаю это для первой строки, где вы заполняете новую pixmap с помощью my_label-> pixmap(): 'QPixmap :: QPixmap (QPixmapData *)': не может преобразовать параметр 1 из 'const QPixmap *' в 'QPixmapData *' « – PathOfNeo

+4

+1: Прохладный работает! Я только позволил бы добавить одно замечание. QMatrix тем временем лишена. Замена QMatrix на QTransform будет соответствовать Qt4.8, Qt5 лучше. –

Смежные вопросы