QMovie播放gif动态图片后切换为jpg静态图片的问题

想知道一下QMovie调用start后,gif图片显示的过程及原理,
因为在QMovie实例化后,调用start播放gif图片,之后通过延时函数,让gif图片播放3s,再切换播放其他图片,
结果gif图片播放出来是静止的画面,感觉应该是start的实现原理不够理解,或者是延时函数的问题
下面是我的代码,
void MainWindow::picture_path(const QString &path)//path为放置gif图片及jpg图片的文件夹路径
{
    QDir dir(path);//实例化QDir
    if (!dir.exists())//判断改路径是否存在
    {
        qDebug()<<false;
    }
    dir.setFilter(QDir::Files | QDir::NoSymLinks);//
    dir.setSorting(QDir::Name);//设置排序顺序
    QFileInfoList list = dir.entryInfoList(QDir::Files|QDir::NoDotAndDotDot);//用list保存文件夹下的图片文件
    for (int i = 0; i < list.size(); i++)
    {     
            QFileInfo fileInfo = list.at(i);
            QString OpenFileName = fileInfo.fileName();
            QString picturepath = fileInfo.path()+"/"+OpenFileName;//获取图片文件的路径
            if(OpenFileName.endsWith(".gif"))
            {
               QMovie *movie = new QMovie(picturepath);
               ui->label1->setMovie(movie);              
               movie->start();
            }else{
                QPixmap pix(picturepath);
                QPixmap dest=pix.scaled(ui->label1->size(),Qt::KeepAspectRatio);
                ui->label1->setPixmap(dest);
            }
            movie_sleep(3000);//自定义的延时函数,不会阻塞进程
}

void MainWindow::movie_sleep(unsigned int msec)
{
    QTime _Timer = QTime::currentTime().addMSecs(msec);
    while( QTime::currentTime() < _Timer )
        QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

}

 

movie->start();之后再等待三秒,下一次播放的时候,应该清空label1

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632