在Qt中旋转图像

在Qt中旋转图像,qt,user-interface,Qt,User Interface,在我的应用程序中,我想旋转图像(我已将图像设置为QLabel)。我已经设置了一个QPushButton,点击该按钮,我想在四个方向上旋转我的图像(右->下->左->上) 有什么帮助吗?假设您有一个指向QLabel的指针,您可以执行以下操作 void MyWidget::rotateLabel() { QPixmap pixmap(*my_label->pixmap()); QMatrix rm; rm.rotate(90); pixmap = pixmap.

在我的应用程序中,我想旋转图像(我已将图像设置为
QLabel
)。我已经设置了一个
QPushButton
,点击该按钮,我想在四个方向上旋转我的图像(右->下->左->上)


有什么帮助吗?

假设您有一个指向QLabel的指针,您可以执行以下操作

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

这将引导您在四个应用程序中完成右、下、左、上操作。

QMatrix已被弃用,因此您可以使用QTransform

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

在第一行中,您使用我的标签->pixmap():“QPixmap::QPixmap(QPixmapData*)”:无法将参数1从“const QPixmap*”转换为“QPixmapData*”“+1:很酷的作品!我只想补充一句。同时对QMatrix进行了润滑。用QTransform替换QMatrix更符合Qt4.8和Qt5的要求。如果从磁盘加载并保存图像,则不要这样做,否则会丢失元数据。