QML的編碼約定

    QML編碼約定: QML Coding Conventions

1. QML對象

    QML對象一般使用下面的順序進行構造:

    a. id

    b. 屬性聲明

    c. 信號聲明

    d. JavaScript函數

    e. 對象屬性

    f. 狀態

    g. 狀態切換

2. 分組屬性

    如果使用了一組屬性中的多個屬性,那麼使用組表示法,而不要使用點表示法,這樣可提高可讀性

Rectangle {
    anchors.left: parent.left; anchors.right: parent.right
    //可寫成
    anchors {
        top: parent.top; bottom: parent.bottom
    }
}
3. 私有屬性

   QML和JavaScript中並沒有C++中那樣強制私有屬性。例如這些屬性實施的一部分時,這裏需要隱藏哪些私有屬性。慣例,私有屬性使用兩個下滑先開頭。例如,__area是一個可以被訪問但是並不作爲公有使用的屬性:

Item {
    id: component
    width: 40; height: 50
    property real __area: width * height * 0.5 //並不作爲外部使用
}
4. 列表

    如果一個列表只包含一個元素,那麼通常忽略方括號。

states: [
        State {
            name: "open"
            PropertyChanges {target: container; width: 200}
        }
    ]
    //可以寫成
    states: State {
            name: "open"
            PropertyChanges {target: container; width: 200}
    }
5. JavaScript代碼

    如果腳本是一個單獨的表達式(如,width: parent.width / 2),建議將它寫成內聯;

    如果腳本只有幾行,寫成塊;

    如果腳本有很多行,或者需要被不同的對象使用,創建一個函數。調用:width: calulateWidth(parent)

    如果是很長的腳本,可以將這個函數放在獨立的JavaScript文件中,然後導入使用:

   

import "myscript.js" as Script

Rectangle {color: "blue"; width: Script.calculateWidth(parent)}



發佈了66 篇原創文章 · 獲贊 16 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章