Qt開發 qml頁面的建立 呈現與銷毀

2021-08-27 07:50:45 字數 1230 閱讀 9292

先呻吟一下:win8與qt專案並著來做,壓力有點大...

初步接觸qml,感覺很難上手。首先是參考資料較少,好的論壇少,語法咋看上去也有點怪怪的。相對於操著各種長槍短跑的xaml,qml顯得有點寒酸。

好吧,下面言歸正傳。

建立頁面

qml頁面也就是乙個元件,頁面建立後需要手動銷毀。我們可以這樣建立乙個qml元件:

var

editpage=qt

.createcomponent("editpage.qml").createobject(mainpage

);

editpage是將要顯示的頁面;mainpage是editpage的父級頁面,也就是editpage返回後的上一級頁面。

頁面呈現

事實上,如果建立的頁面,沒有特別地定義它的opacity屬性為0的話,這個頁面就會被呈現在程式中。qml元件的建立和銷毀就像壓棧出棧一樣,不是說呈現的頁面把原來的頁面給替換了,而是把它覆蓋了而已。

如果想加上過渡的動畫,可以利用states和transition這兩個屬性來實現,如下面**所示:

states:[

state

},

state

}
]

transitions:[

transition

},

transition

}
]
**中mainarea其實就是這個頁面的id;頁面定義了兩個state: show,hide,用來控制mainarea的opacity的值;定義了兩個transition過程:從show到hide,從hide到show,動畫時間為200ms。

頁面的銷毀

如果建立了乙個元件物件,卻沒有即使銷毀它的話,會增加系統的記憶體開銷和負擔。那麼在頁面返回時,我們可以通過js的destroy()方法來實現物件的銷毀和空間的**:

myeditpage.destroy()
myeditpage是物件自身的id。在物件內來銷毀自身,看起來有點奇怪;但事實上destroy()會呼叫槽函式: deletelater(),也就是常用的非同步操作,也避免了ui的阻塞。

搜尋頁面的開發

開發思路 1 前端介面借助於weui來實現 2 後端訪問資料庫類似於章節目錄的方法,但是訪問資料庫的語句不同,採用的是模糊查詢的方式 後台chap.js的核心 async searchaction limit size select return this.success result search...

QML學習筆記 建立頁面表示方法

建立個乙個新頁面,找乙個變數指向這個新頁面,這樣就可以在主頁面裡面直接呼叫這個變數,也可以判斷這個頁面是否是已經建立!使用 property qtobject quickfrm 定義乙個變數可以表示乙個頁面這個可以這樣使用 quickfrm qt.createcomponent quicktime....

VUE登入頁面的開發

官方文件 npm install axios 登入 註冊import register from views register.vue import login from views login.vue 根目錄預設跳轉到login routes import cube ui import axios...