Как повернуть / преобразовать QMovie в C ++ - PullRequest
1 голос
/ 05 октября 2019

Я могу повернуть QPixmap с таким кодом

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

, как я могу сделать то же самое с QMovie? Или как-то завернуть его в какой-нибудь «контейнер» и повернуть этот «контейнер»?

1 Ответ

0 голосов
/ 06 октября 2019

Вы можете попробовать поворачивать кадр за кадром. Например:

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);
}
...