如何使用信号帧Changed(int)在QT中播放QMovie一次



如何使用frameChanged(int(来确定帧是最后一帧,我想用信号停止Qmovie播放一次而不是永远播放。

QMovie *movie = new QMovie();
movie->setFileName("C:/Qt/qtcreator-2.2.1/game/test/pikaqiu.gif");
QSize size = this->getLabelPointer()->size();
movie->setScaledSize(size);
this->getLabelPointer()->setMovie(movie);
QObject::connect(movie,SIGNAL(finished()),movie,SLOT(deleteLater()));
movie->start();
enter code here
delete this;
movie->stop();

'

必须使用frameCount()函数来获取 QMovie 的帧数。

QMovie *movie = new QMovie();
movie->setFileName("download.gif");
ui->label->setMovie(movie);
connect(movie, &QMovie::frameChanged, [=](int frameNumber){
if(frameNumber == movie->frameCount()-1){
movie->stop();
movie->deleteLater();
}
});
movie->start();

最新更新