深圳網(wǎng)博網(wǎng)站建設(shè)app開發(fā)者需要更新此app
Qt Quick的介紹?:
Qt Quick是QML的標(biāo)準(zhǔn)類型和功能庫。它包括視覺類型,交互類型,動畫,模型和視圖,粒子效果和著色器效果。QML 應(yīng)用程序開發(fā)人員可以通過單個導(dǎo)入語句訪問所有這些功能,簡單來說Qt Quick是一種高級用戶界面技術(shù),可以輕松的創(chuàng)建提供移動和嵌入式設(shè)備使用的動態(tài)觸摸式界面和輕量級引用程序
Qt Quick的組成部分:
- QML
- QtDeclarative
- 改進(jìn)的Qt CreateIDE
在Qt Quick中 QML實(shí)現(xiàn)用戶界面以及它們的行為和動作,QML是對JavaScript的一種擴(kuò)展,可以讓開發(fā)者和設(shè)計者使用一個聲明性語法來使用QML元素指定每一個用戶界面。
Qt的QtDeclarative模塊實(shí)現(xiàn)了QML語言和對它適用的元素之間的接口,此外該模塊還提供了一個C++接口,可以用來在Qt/C++應(yīng)用程序中加載QML文件并于之通信。?
QML的介紹?:
QML是一種聲明性語言,它允許根據(jù)用戶界面的可視組件以及它們?nèi)绾蜗嗷ソ换ズ完P(guān)聯(lián)來描述用戶界面。它是一種高度可讀的語言,旨在使組件能夠以動態(tài)方式互連,并允許在用戶界面中輕松重用和自定義組件。使用該模塊,設(shè)計人員和開發(fā)人員可以輕松地在 QML 中構(gòu)建流暢的動畫用戶界面,并可以選擇將這些用戶界面連接到任何后端C++庫。
QML是一種用戶界面規(guī)范和編程語言。它允許開發(fā)人員和設(shè)計人員創(chuàng)建高性能、流暢的動畫和視覺上吸引人的應(yīng)用程序。QML提供了一種高度可讀的、聲明性的、類似JSON的語法,支持命令式JavaScript表達(dá)式和動態(tài)屬性綁定
QML是通過Qt QML引擎在程序中運(yùn)行時解析并運(yùn)行。
創(chuàng)建一個QML程序:
1.進(jìn)入Qt Creator點(diǎn)擊左上角文件,然后點(diǎn)擊新建文件或項(xiàng)目
2.然后選擇 Application中的 Qt Quick Application,點(diǎn)擊choose
?3.設(shè)置文件名,選擇版本
這里看自己的Qt版本
4.創(chuàng)建好后的項(xiàng)目:?
main.qml文件:
1.import 導(dǎo)入所需要的Qt Quick庫
import QtQuick 2.9 //導(dǎo)入 Qt Quick 2.9
import QtQuick.Window 2.2 //導(dǎo)入 Qt Quick 窗體庫
2.窗體結(jié)構(gòu)
Window { //對象visible: true //屬性width: 640height: 480title: qsTr("Hello World")//MainFrom{ //可添加子對象//}
}
創(chuàng)建一個新的對象:
在資源文件中添加一個MainForm.ui.qml(.ui代表帶有ui界面)
雙擊MainForm.ui.qml文件
?在代碼區(qū)添加以下代碼:
初學(xué)者的話沒必要仔細(xì)看,知道大致結(jié)構(gòu)就行,有些格式和關(guān)鍵詞后面會接觸
import QtQuick 2.9 //添加QML文檔Rectangle //根對象
{property alias mouseArea: mouseArea //別名property alias textEdit: textEdit //別名width:300height:500MouseArea //子對象1{id:mouseAreaanchors.fill: parent}TextEdit //子對象2{id:textEdittext:qsTr("Enter some text...")//顯示的內(nèi)容verticalAlignment:Text.AlignVCenter//設(shè)置中心部件anchors.top:parent.top;anchors.horizontalCenter:parent.horizontalCenteranchors.topMargin:20Rectangle//子對象3{anchors.fill:parentanchors.margins:-10color:"transparent"border.width:1}}
在main.qml中添加MainForm.ui.qml的子對象
?運(yùn)行后,點(diǎn)擊窗口外任何位置:
1.對象和屬性:
- 每一個QML文檔有且僅有一個根對象
- 一個根對象可以有0個或多個子對象
xxxxx//根對象
{GGGG{ //子對象1}PPP{//子對象2}......(可以有子對象n)
}
?注意:項(xiàng)目中需要有 import? QtQuick xxx ,這樣才能獲得標(biāo)準(zhǔn)的QML對象
2.對象標(biāo)識符?
設(shè)置標(biāo)識符的格式:? 類內(nèi)添加? id:xxxx
格式限制:必須為小寫字母或下劃線開頭,只能使用 字母,數(shù)字,下劃線。
- 每個對象都可以有一個唯一的id值
- 可以在別的對象中使用標(biāo)識符來識別并引用該對象
- id是一個特殊的值,不能用 mouseArea.id訪問
- id一旦創(chuàng)建 無法更改
MouseArea
{id:mouseArea //使用id:xxx 來設(shè)置對象的標(biāo)識符
}
3.屬性別名
QML中 ,屬性可以有別名。
格式:property? alias 別名:屬性名
Rectangle{id:coloredRectangle //標(biāo)識號property alias color: blueRectangle.color//起別名,color 代表 blueRectangle中的colorRectangle{id:blueRectangle//標(biāo)識號color:"#1234ff"}
4.輸出語句
控制臺輸出: console.log(qsTr(................));
5. 注釋
和C++一樣:
- //? 單行注釋
- /*? ? */ 多行注釋