Animation GIF dans Qt
J'ai utilisé QGraphicsView
, QGraphicsScene
de classe afin de montrer une image dans un widget comme ceci:
m_Scene->addPixmap(QPixmap(fileName));
m_View->setScene(m_Scene);
Comment je peux montrer .gif animation dans la même scène?
Vous devez vous connecter pour publier un commentaire.
Je n'utilise pas d'animation GIF avec
QGraphicsView
ouQGraphicsScene
, je l'utilise seulement dansQDialog
, mais je pense que c'est la même chose, donc voici mon code:Mon
loading.gif
j'ai pris de cette lien.PS: voir les exemples de Qt SDK. Ils sont vraiment là pour vous aider!
QGraphicsView
classe prend en charge animation GIF. Mais encore, vous pourriez utiliser un autre des méthodes, par exemple pour créer un autreQThread
qui serait juste afficher en haut de votre fenêtre principale de GIF animation, tout en vous app charger scène ou ce que jamais... Oh, ou 3x3?J'ai mis ça ici au cas où quelqu'un d'autre que moi s'exécute dans le même problème.
Problème
Le GIF ne se charge pas et
isValid()
retournefalse
.Code
Solution
Pour résoudre ce problème, j'ai dû mettre de Qt GIF-plugin
qgif4.dll
dans un dossier nomméimageformats
à côté de mon exe pour être en mesure d'utiliser des Gif.La dll peut être trouvé sous
/plugins/imageformats/qgif4.dll
.isValid()
est vraiment utile pour le débogage, merci, +1 pour l'.http://doc.qt.io/qt-5/qmovie.html
google et Qt docs sont à votre ami. Il y a même une exemple.
PS: sauf si vous êtes en Chine, google est inaccessible, mais vous auriez des trucs comme Bing et doc.qt.io.com.
PS2: pour un peu plus en profondeur réponse: vous pouvez utiliser un
QGraphicsProxyWidget
d'unQLabel
qui a unQMovie
viaQLabel::setMovie
. Il y a probablement un plus facile/moyen plus court de le faire.Donner le bon chemin de la ressource comme ci-dessous code