更改GIF动画速度而不生成新的QMovie
Change GIF animation speed without generating new QMovie
我正在为一个智力竞赛节目创建记分板,我偶然发现了这个问题。下面的代码显示动画.gif的动画速度取决于玩家的当前分数。
void Scoreboard::label1(int i)
{
ui->label_46->setNum(i);
ui->label_46->setStyleSheet("color: #ff5500; qproperty-alignment: AlignCenter; background-color: rgba(0,0,0,0%); font-size: 26 pt;");
ui->label_96->clear();
QMovie *logo1 =new QMovie("C:/Users/**REDACTED**/Desktop/esq-minimal-sample-adjusted-color.gif");
ui->label_96->setMovie(logo1);
logo1->start();
int speed;
speed=i*40;
if(speed<=0)
{
logo1->stop();
return;
}else if(speed==100)
{
return;
}else if(speed>500)
{
speed=500;
}
logo1->setSpeed(speed);
}
代码运行良好,直到分数更改过多次(即插槽标签1已被激活多次)。这会导致在同一位置加载.gif的多个副本,从而导致程序速度减慢。
在将新的.gif加载到程序之前,有什么方法可以删除以前的.gif吗?
在Widget构造函数中的函数外加载一次Movie,然后多次重用。
相关文章:
- 如何在 c++ 中旋转/转换 QMovie
- 如何使用信号帧Changed(int)在QT中播放QMovie一次
- 文本框隐藏在 gif 动画后面
- 如何使用ImageMagick Magick 将图像作为gif写为blob
- 获取GIF帧数,而无需解码所有数据
- 在QT C 中使用QMOVIE和信号/插槽之间在GIF中导航
- 如何在 Allegro 5 中使用带有 Algif5 插件的 GIF
- gif-h 库的简单使用示例
- 如何使用 wxWidgets c++ 加载 gif
- 如何在Visual Studio c ++中将GIF显示为splash
- 如何将.GIF文件放在构建目录中
- QT-显示由MainWindow上QListWidget选择的动画GIF
- 尝试使用Giflib编码GIF文件
- 在带有QMovie的GIF动画和Qt中的信号/插槽之间切换
- 如何为我的GIF图块表(OpenGL,DevIL,C++)制作动画
- 如何最好地实现GIF加载类
- C++SDL2|如何在SDL2中播放GIF
- QMovie动画gif功能在Windows系统上不起作用
- 更改GIF动画速度而不生成新的QMovie
- Qt5部署的应用程序在QMovie中不显示GIF图像