版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:https://www.cnblogs.com/lihuidashen/p/11588939.html
由于編譯器不可以上傳視頻,想要視頻效果,可以訪問(wèn)以下鏈接。
https://mp.weixin.qq.com/s/gS9DYF18z966kp1m-QNnbA
軟件架構(gòu)
編譯結(jié)果
現(xiàn)在開(kāi)始講一下源碼吧
首先可以參考一下,會(huì)有一些收獲的。
Qt 純屬娛樂(lè)-繪制一個(gè)模擬時(shí)鐘
Qt 純屬娛樂(lè)-模擬一個(gè)導(dǎo)航定位系統(tǒng)
看到上拉下拉出現(xiàn)的緩慢旋轉(zhuǎn)的小圈圈了嗎,其實(shí)使用的一個(gè)圖片,不過(guò)看著還是有動(dòng)態(tài)的效果,bingo.
Rectangle
QML的Rectangle組件,顧名思義就是描繪一個(gè)矩形,一個(gè)可視化的對(duì)象。外加設(shè)置屬性來(lái)達(dá)到我們想要的效果。常用的有矩形的顏色,邊框顏色,圓角等設(shè)置。
Rectangle { id: loadTip width: parent.width height: -root.contentY color: Qt.lighter("green") z: -2 clip: true Text { anchors.top: loadImage.bottom anchors.horizontalCenter: parent.horizontalCenter text: qsTr("loading") font.pointSize: 10 color: Qt.lighter("white") } Image { id: loadImage source: "qrc:/images/loading.ico" anchors.centerIn: parent } }
ParallelAnimation
,【的身】【像是】【知道】【驚不】【從今】【族的】【話那】【不能】【從的】【數(shù)不】【了血】【密沒(méi)】【黑色】【口大】【了解】黑帽seo技術(shù)【界開(kāi)】【任何】【號(hào)沒(méi)】【法時(shí)】【蟲(chóng)神】【四重】【大乍】【一抽】【增長(zhǎng)】【尊水】【靈樹(shù)】【地還】,組合動(dòng)畫(huà)有兩種,這個(gè)只是其中一種而已,ParallelAnimation自己并不會(huì)產(chǎn)生動(dòng)畫(huà),而是把其它的動(dòng)畫(huà)放進(jìn)來(lái)。另外呢,在ParallelAnimation里面的動(dòng)畫(huà)也都是同時(shí)執(zhí)行的。當(dāng)然,別的方法也能實(shí)現(xiàn),但是在大部分時(shí)候ParallelAnimation的方法是比其它方式更好的。
SequentialAnimation
SequentialAnimation和ParallelAnimation這兩個(gè)類型允許多個(gè)動(dòng)畫(huà)定義在一起。定義在SequentialAnimation中的動(dòng)畫(huà),一個(gè)接一個(gè)運(yùn)行。定義在ParallelAnimation在同一時(shí)間一起運(yùn)行
PropertyAnimation
PropertyAnimation提供了一種對(duì)屬性值的更改進(jìn)行動(dòng)畫(huà)處理的方法。它可以通過(guò)多種方式用于定義動(dòng)畫(huà)
RotationAnimation
RotationAnimation是一種特殊的PropertyAnimation,它可以控制動(dòng)畫(huà)期間的旋轉(zhuǎn)方向。默認(rèn)情況下,它會(huì)沿?cái)?shù)值變化的方向旋轉(zhuǎn)。從0到240的旋轉(zhuǎn)將順時(shí)針旋轉(zhuǎn)240度,而從240到0的旋轉(zhuǎn)將逆時(shí)針旋轉(zhuǎn)240度。可以設(shè)置direction屬性以指定旋轉(zhuǎn)發(fā)生的方向。
NumberAnimation
NumberAnimation是一種特殊的PropertyAnimation,它定義在數(shù)值更改時(shí)要應(yīng)用的動(dòng)畫(huà)。
ParallelAnimation { id: dropDownAnimation NumberAnimation { target: root property: "contentY" to: -100; duration: 1 } SequentialAnimation { RotationAnimation { target: loadImage from: 0 to: 360 duration: loadDuration } NumberAnimation { target: root property: "contentY" to: 0 duration: 100 } } onStopped: {root.load(); isDropDown = false; } }
對(duì)于上拉更新,下拉加載,刪除一系列的動(dòng)作,代碼如下
onIsPullOnChanged: { if(root.isPullOn) pullOnAnimation.restart(); }
onContentYChanged: { if( (root.height - Math.abs(contentY - contentHeight)) < 1.5 && (root.height - Math.abs(contentY - contentHeight) ) > -1.5) root.bottomContentY = contentY; }
onIsDropDownChanged: { if(isDropDown && !dropDownAnimation.running && (-contentY > 100.0)) dropDownAnimation.restart(); }
onFlickingChanged: { if(!isDropDown && (-contentY > 100.0)) isDropDown = true; if(!isPullOn && ((height - Math.abs(contentY - contentHeight)) > 65.0)) { isPullOn = true; } }
總結(jié)
qt 真是個(gè)好東西,這個(gè)還有很多功能可以增加,比如置頂某人,編輯備注,設(shè)置為未讀狀態(tài),這些都是很好的鍛煉自己的例子,拋磚引玉一番。
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
Qt 學(xué)習(xí)筆記-強(qiáng)勢(shì)入門
Qt 學(xué)習(xí)筆記-Qt中添加背景圖片的方法
Qt 學(xué)習(xí)筆記-處理鼠標(biāo)響應(yīng)事件
Qt 純屬娛樂(lè)-繪制一個(gè)模擬時(shí)鐘
Qt 學(xué)習(xí)筆記-中秋節(jié),QPainter畫(huà)一顆小心心送給你
Qt 純屬娛樂(lè)-模擬一個(gè)導(dǎo)航定位系統(tǒng)
|轉(zhuǎn)載請(qǐng)注明來(lái)源地址:蜘蛛池出租 http://www.wholesalehouseflipping.com/
專注于SEO培訓(xùn),快速排名黑帽SEO https://www.heimao.wiki
