在 QListWidget 中旋转 QImage

Rotate QImage in QListWidget

本文关键字:QImage 旋转 QListWidget      更新时间:2023-10-16

有一个小应用程序,在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();
}
}
}

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

从文档中,QImage::transformed成员函数的签名是...

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

所以你需要利用返回的QImage。 尝试。。。

*tileToRotate = tileToRotate->transformed(rotate);