今年聖誕節手癢簡單實現了乙個桌面雪花飄落的動畫背景, 發給老婆體驗一下, 提了些意見, 進行了改進.
今天改進了以下幾點:
1. 雪花旋轉了
2. 加入了飄落時會左右飄動, 想模擬風吹的感覺. (很生硬, 演算法還得優化)
4. 下落速度和左右飄的速度在一定的範圍內隨機生成
這個版本的**託管在github.com上了:
備註: 有點懶, **沒注釋.
準備將這個應用的優化和改進過程寫成系列, 好好了解一下qt做動畫. blog裡不過多解釋, 往後會多寫注釋. 看**就應該ok了.
目前的優化/對比想法:
動畫目前是使用qlabel存資訊, 然後輪流顯示實現動畫.
往後試試以下方法:
1. 輪流重畫qwidget背景圖實現動畫
2. 使用qgraphicview實現動畫
3. 使用animations實現動畫
4.每個雪花動畫自己更新動畫(目前有大的qwidget使用乙個timer一次迴圈更新全部雪花的動畫切換)
主要是想看看哪些方法更容易實現, 更省系統資源(比如所耗cpu, 記憶體等)
這裡說一下三個類(目前只寫了三個類):
widget類: 作為背景, 透明, 主視窗
swing類: 提供雪花擺動的方向(左/右/下)
snowwidget類: 雪花的實現類
ps: 剛好最近結了專案, 有時間, ^_^
上傳了可直接執行的程式:
上一張截圖, 老婆配了個背景: 簡單說 JavaScript實現雪花飄落效果
settimeout函式用來指定某個函式或某段 在多少毫秒之後執行。它返回乙個整數,表示定時器的編號,以後可以用來取消這個定時器。var timerid settimeout func code,delay setinterval函式的用法與settimeout完全一致,區別僅僅在於setinter...
Qt實現桌面截圖
實現桌面截圖,軟體如下 圖1 桌面截圖 主要介紹乙個方法 grabwindow wid window,int x 0,int y 0,int width 1,int height 1 建立並返回乙個qpixmap,通過抓取給定視窗的內容 x y width height 引數 x y 指定視窗中的偏...
QT學習 實現串列埠工具(1)
qt在被諾基亞放棄後,終於在最近幾天決定了出處,被芬蘭軟體公司digia收購了,qt.digia.com,希望以後能發展的更好。再不在弄點什麼學學,在公司還真沒什麼事做了,本來想把寫的微控制器程式 優化下,不過看著冗長的 不知道怎麼 入手,已經優化了一段時間,效果一般啊。還是做點別的,不然什麼事都不...