(QT C++)基于滑块/刻度盘值制作GIF动画

(QT C++) Animate GIF Based on Slider/Dial Value

本文关键字:动画 GIF C++ QT 于滑块      更新时间:2023-10-16

我对Qt比较陌生,我有一个问题看起来很简单。

我如何制作一个滑块/线编辑,当设置为某个值(0)时,它显示GIF动画的开头,然后当设置为更高的值(12000)时,会转到动画中的另一帧?GIF图像将位于滑块旁边,而不是一个单独的窗口。几乎任何方式都可以做到这一点。:)

感谢

您可以使用QMovie来操作GIF动画图像。您需要设置QMovie::CacheAll缓存模式,以便可以向后倒带。在表单中放置一个滑块和一个标签。添加QMovie* movie私有类成员。

在构造函数中:

movie = new QMovie("c:/tmp/sample.gif", "GIF", this);
movie->setCacheMode(QMovie::CacheAll);
ui->slider->setRange(0, movie->frameCount() - 1);
on_slider_valueChanged(0);

插槽中:

void MainWindow::on_slider_valueChanged(int value) {
  movie->jumpToFrame(value);
  ui->label->setPixmap(movie->currentPixmap());
}