我用QGraphicsView
,QGraphicsScene
班,以示在這樣的小部件的照片:GIF動畫Qt中
m_Scene->addPixmap(QPixmap(fileName));
m_View->setScene(m_Scene);
如何,我可以告訴.gif注意動畫在同一場景?
我用QGraphicsView
,QGraphicsScene
班,以示在這樣的小部件的照片:GIF動畫Qt中
m_Scene->addPixmap(QPixmap(fileName));
m_View->setScene(m_Scene);
如何,我可以告訴.gif注意動畫在同一場景?
我不使用GIF動畫與QGraphicsView
或QGraphicsScene
,我用它只有在QDialog
,但我認爲這是同樣的東西,所以這裏是我的代碼:
QMovie *movie = new QMovie(":/images/other/images/16x16/loading.gif");
QLabel *processLabel = new QLabel(this);
processLabel->setMovie(movie);
movie->start();
我loading.gif
我從this了鏈接。
PS:同時檢查Qt SDK的例子。他們真的可以幫助!
http://doc.qt.io/qt-5/qmovie.html
谷歌和Qt文檔是你的朋友。甚至有一個example。 PS:除非你在中國,否則谷歌是無法訪問的,但你會擁有Bing和doc.qt.io.com之類的東西。
PS2:稍微深入一點的回答:您可以使用的QLabel
,它的QMovie
通過QLabel::setMovie
。有可能是一個更簡單/更短的方式來做到這一點。
我把這個放在這裏以防別人以外的人遇到同樣的問題。
問題
的GIF將不會加載和isValid()
回報false
。
代碼
// Load animated GIF
QMovie* movie = new QMovie("foo.gif");
// Make sure the GIF was loaded correctly
if (!movie->isValid())
{
// Something went wrong :(
}
// Play GIF
QLabel* label = new QLabel(this);
label->setMovie(movie);
movie->start();
解決方案
爲了解決這個問題,我不得不把Qt的GIF,插件qgif4.dll
名爲imageformats
我旁邊的EXE文件夾中,以便能夠使用GIF格式。
該DLL可以在 /plugins/imageformats/qgif4.dll
找到。
'isValid()'對於調試非常有幫助,謝謝+1。 – TranslucentCloud 2017-01-07 18:08:08
給資源的樣子正確的路徑類似如下的代碼
QMovie *movie=new QMovie(":/images/foo.gif");
if (!movie->isValid())
{
// Something went wrong :(
}
// Play GIF
label=new QLabel(this);
label->setGeometry(115,60,128,128);
label->setMovie(movie);
movie->start();
如果有人問你多少5x5的你說:「不要問多少是5x5的,你最好問有多少是2×2」 ?你回答:「2x2 = 4」? – Narek 2010-07-15 07:31:29
不,我說也許2x2 = 4將有助於從5x5獲得25 ... – mosg 2010-07-15 07:43:45
是的,這裏是同樣的故事!你建議我通過知道2x2 = 4 :))來計算5x5)。我想說謝謝你的幫助,但是你說我知道,我想按照我的要求完成任務。可能你可以通過使用QGraphicsView和QGraphicsScene類來幫助我做到這一點?或者如果你說這些類是不可能的,那麼它也是一個答案! – Narek 2010-07-15 08:29:02