在QListWidget中旋转QImage

时间:2018-08-12 16:47:13

标签: c++ qt qimage qlistwidget

有一个小应用程序,其中在QListWidget中使用此功能显示了许多QImage和文本:

void TileDisplay::DisplayTiles()
{
    for(int i = 0; i < m_tiles.size(); i++) {
        QListWidgetItem *item = new QListWidgetItem("Tile " + QString::number(i+1), ui->listWidget);
        item->setData(Qt::DecorationRole, m_tiles[i].scaled(64, 64, Qt::IgnoreAspectRatio, Qt::FastTransformation));
    }
}

我正在寻找一种解决方案,其中可以使用以下功能将QImage绕其中心旋转:

void TileDisplay::RotateImage(int degree)
{
    if(GetTiles().size() > 0) {
        QImage *tileToRotate = GetCurrentTile();
        if(tileToRotate != nullptr) {
            QTransform rotate;
            rotate.rotate(degree);
            tileToRotate->transformed(rotate);
            DisplayTiles();
        }
    }
}

它正在运行,没有任何问题,但是图像没有旋转。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

documentationQImage::transformed成员函数的签名是...

QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode) const;

因此,您需要利用返回的QImage。试试...

*tileToRotate = tileToRotate->transformed(rotate);