Qt學習之路之QMovie動畫

2021-08-03 15:36:05 字數 2622 閱讀 5322

qmovie

qmovie類用於

顯示簡單的動畫

,沒有聲音。

首先,通過將乙個檔案的名稱或者乙個指標傳遞給qmovie的建構函式構建乙個qmovie物件。傳遞的檔案包含檔案的格式。

可以呼叫函式

isvalid()

呼叫函式

start()

started() 

和statechanged()

訊號。當然,呼叫函式

state()

比如, 用

qlabel 

顯示動畫:

[cpp]view plain

copy

qlabel label;  

qmovie *movie = new

qmovie(

"animations/fire.gif"

);  

label.setmovie(movie);  

movie->start();  

每當乙個動畫用於新的框架中,qmovie將會發出

update()

訊號,若動畫的

幀發生變化,qmovie將會發出

resized()

訊號。

呼叫函式 

currentimage()

或者 currentpixmap()

可獲取當前幀副本。

finished()

error()

;

qmovie 相當強大, 它可以呼叫函式 

setspeed()

setpaused(true)

statechanged()

訊號。當然,再次向函式

setpaused()

stop()

qmovie

可以通過

呼叫setcachemode()

指示快取幀的

動畫。部分qmovie函式詳情:

1,setspeed()

是用原始

的動畫速率

百分比衡量。預設

的速度是100%。例如:

[cpp]view plain

copy

movie movie(

"racecar.gif"

);  

movie.setspeed(200); // 2x speed 。

2,backgroundcolor()

函式原型:

[cpp]view plain

copy

qcolor qmovie::​backgroundcolor() 

const

該函式將返回動畫的背景色,如果沒有指定背景色,那麼,函式將返回乙個無效的 qcolor。可以呼叫 下面的函式設定動畫的背景色:

[cpp]view plain

copy

void

qmovie::​setbackgroundcolor(

const

qcolor & color)  

3,isvalid()

函式原型:

[cpp]view plain

copy

bool

qmovie::​isvalid() 

const

如果動畫有效,將返回

true

, 相反,則返回

false

qmovie的學習就到這兒~~~~

下面是用qlabel物件顯示qmovie動畫的部分**:

[cpp]view plain

copy

qmovie *movie = 

newqmovie(

":/movie/1"

);  

movie->setspeed(1000);  

movie->setbackgroundcolor(qcolor(10, 10, 10));  

qlabel  *label = new

qlabel();  

label->setmovie(movie);  

label->show();  

movie->start();  

執行結果:

Qt之等待提示框(QMovie)

關於gif的使用在實際專案中我用的並不多,因為我感覺瑕疵挺多的,很多時候鋸齒比較嚴重,當然與圖存在很大的關係。關於生成gif的方法可以提供乙個 preloaders,基本是可以滿足需求的。由於錄製程式的原因,引起gif效果不清晰,可忽略。通過使用qmovie來設定動畫 可以呼叫setspeed 設定...

Qt學習之路

qt 學習之路 是在網路上受到一定歡迎的 qt 入門教程。只是這個系列便攜與 2009 年,至今已經有三年多的時間。今天的 qt 有了很大的變化,包括 qt quick 的加入 qt 底層架構的改變,更重要的是 qt 5 的發布。本系列文章將會是 qt 學習之路 的一次公升級和修訂,著重關注於 qt...

QT學習之路

qt學習之路2 目錄 1 序2 qt 前言 3 hello,world 4 訊號槽 5 自定義訊號槽 6 qt 模組簡介 7 mainwindow 簡介 8 新增動作 9 資源檔案 10 物件模型 11 布局管理器 12 選單欄 工具欄和狀態列 13 對話方塊簡介 14 對話方塊資料傳遞 15 標準...