深入淺出理解QTimeLine類

2022-05-06 18:45:11 字數 1081 閱讀 9557

網上找了下qtimeline類的介紹,要麼就是**一貼自己看去,要麼就是說不到重點,正巧自己專案遇到這個類,在這裡寫一下,給需要的同學看下。

因為我最近需要有動畫方面配合時間間隔觸發qgraphicsview框架的需求,意外找到了乙個qt中很實用的時間類qtimeline,現在讓我們一起來學習一下它。

qtimeline擁有乙個時間軸來控制時間動畫和事件,其中在建構函式傳入的時候你需要指定乙個毫秒級的引數來指定他的總執行時間比如new qtimeline(1000),表示它執行的總時間為1秒。

第二步你要做的就是對qtimeline的時間軸設定動畫幀數,相信了解動畫的人對幀數應該不陌生,不了解的人你可以跟我一樣把它想象成乙個動畫表示的時

候有多少張靜態畫面組成,所以對qtimeline::setframerange(0,

100)。表明該動畫一共有100張靜態畫面來組成,同時請注意,建構函式傳入的時候有乙個時間引數,同學們千萬別以為frame和time有著必然的聯

系,其實時間再長或者時間再短,我的整個100幀都可以走完,只是走完時,會受時間影響的控制來影響我的幀數步長。比如你的時間設定為0ms,但幀數是

100,所以點了start之後一下子就到了100幀(qt中預設規定40ms一幀,也就是一秒可以最多走25幀,但是如果你設定的是0ms,qt會預設

按照40ms一幀的速度來走),同樣如果你設定了80ms,按照qt的習慣,其實就是給你兩次走幀機會,聰明的同學應該猜到了,就是50幀和100幀。

第三步,你可以設定你的時間變換曲線,即setcurveshape函式來規定明確你的時間是先快後慢,還是先慢後快,或者線性,或者正余弦,比較常用的就是linearcurve線性變換。

第四步,其實到這邊已經差不多了,在用connect連線好它的framechanged(int)函式的時候,你設定好自己的響應時間槽,就可以觸發start來完成自己的動畫效果了。

ps:有的同學會問到setupdateinterval函式是用來幹嘛的,其實你可以簡單的理解為,時間軸的走的時候,會不斷的發出framechanged訊號,這個update就是給它把關多少時間發一次的,其實兩者並不衝突。

合理利用qtimeline類來控制自己的qgraphicsitem動畫,enjoy!

深入淺出理解索引

一 深入淺出理解索引結構 實際上,您可以把索引理解為一種特殊的目錄。sql server提供了兩種索引 聚集索引 clustered index,也稱聚類索引 簇集索引 和非聚集索引 nonclustered index,也稱非聚類索引 非簇集索引 下面,我們舉例來說明一下聚集索引和非聚集索引的區別...

深入淺出理解索引

一 深入淺出理解索引結構 實際上,您可以把索引理解為一種特殊的目錄。sql server提供了兩種索引 聚集索引 clustered index,也稱聚類索引 簇集索引 和非聚集索引 nonclustered index,也稱非聚類索引 非簇集索引 下面,我們舉例來說明一下聚集索引和非聚集索引的區別...

深入淺出理解 COOKIE MAPPING

在網際網路中,我們有著許多標識唯一使用者的技術手段,其中,最為常見的就是 cookie 了 什麼是cookie請參看 分析中的cookie 簡單的多,cookie具備幾個特徵 正因為cookie具備上述幾個特徵,也就衍生出cookie在使用上的一些特點了,我們以dsp.com 廣告購買平台 adx....