如何在C ++中旋转/变换QMovie

时间:2019-10-05 20:24:07

标签: c++ qt qmovie

我可以使用这样的代码旋转QPixmap

  QPixmap pix("img.jpg");
  QMatrix rm;
  rm.rotate(90);
  pix = pix.transformed(rm)

我如何对QMovie做同样的事情?还是以某种方式将其包装到某个“容器”中并旋转该“容器”?

1 个答案:

答案 0 :(得分:0)

您可以尝试逐帧旋转。例如:

m_movie = new QMovie(":/gif/tenor.gif");
connect(m_movie, SIGNAL(frameChanged(int)), this, SLOT(OnFrameChanged(int)));
ui->lblMovie->setMovie(m_movie);
m_movie->start();

并在更改帧时旋转每一帧

void MainWindow::OnFrameChanged(int /*frame*/)
{
    QPixmap pixmap = m_movie->currentPixmap();
    QMatrix rm;
    rm.rotate(90);
    pixmap = pixmap.transformed(rm);
    ui->lblMovRotated->setPixmap(pixmap);
}