Qt 實現桌面雪花飄落 修改1

2021-06-19 22:30:23 字數 896 閱讀 2607

今年聖誕節手癢簡單實現了乙個桌面雪花飄落的動畫背景, 發給老婆體驗一下, 提了些意見, 進行了改進.

今天改進了以下幾點:

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,希望以後能發展的更好。再不在弄點什麼學學,在公司還真沒什麼事做了,本來想把寫的微控制器程式 優化下,不過看著冗長的 不知道怎麼 入手,已經優化了一段時間,效果一般啊。還是做點別的,不然什麼事都不...