我把這些組裝起來,放在一個演示程式中。在我的專案中,目錄結構如下:
listview1$ tree
.
├── imports
│ └── model
│ ├── ContactModel.qml
│ └── qmldir
├── run.sh
└── test.qml
這個演示程式包含了一個test.qml檔案和另一個plugin. 這個plugin只包含了一個ContactModel.qml檔案,沒有C++動態庫。
qmldir描述了從這個plugin暴露出來的module.
module model
ContactModel 1.0 ContactModel.qml
這個ContactModel.qml檔案是一個用於給ListView提供資料的model.import QtQuick 2.0
ListModel {
ListElement {
name: "Bill Smith"
number: "555 3264"
}
name: "John Brown"
number: "555 8426"
name: "Sam Wise"
number: "555 0473"
在test.qml檔案中,將ContactModel應用到model屬性上。delegate是用於遍歷model中所有ListElements的方法,並且將每個ListElement作為一個Text 塊顯示在視窗。import QtQuick 2.0
import model 1.0
ListView {
width: 180; height: 200
model: ContactModel {}
delegate: Text {
text: name + ": " + number
要編譯這個程式,執行下面的命令:qmake
make
要執行的話:~/Qt5.2.0/5.2.0/gcc_64/bin/qmlscene -I ./imports ./test.qm
我把這些組裝起來,放在一個演示程式中。在我的專案中,目錄結構如下:
listview1$ tree
.
├── imports
│ └── model
│ ├── ContactModel.qml
│ └── qmldir
├── run.sh
└── test.qml
這個演示程式包含了一個test.qml檔案和另一個plugin. 這個plugin只包含了一個ContactModel.qml檔案,沒有C++動態庫。
qmldir描述了從這個plugin暴露出來的module.
module model
ContactModel 1.0 ContactModel.qml
這個ContactModel.qml檔案是一個用於給ListView提供資料的model.import QtQuick 2.0
ListModel {
ListElement {
name: "Bill Smith"
number: "555 3264"
}
ListElement {
name: "John Brown"
number: "555 8426"
}
ListElement {
name: "Sam Wise"
number: "555 0473"
}
}
在test.qml檔案中,將ContactModel應用到model屬性上。delegate是用於遍歷model中所有ListElements的方法,並且將每個ListElement作為一個Text 塊顯示在視窗。import QtQuick 2.0
import model 1.0
ListView {
width: 180; height: 200
model: ContactModel {}
delegate: Text {
text: name + ": " + number
}
}
要編譯這個程式,執行下面的命令:qmake
make
要執行的話:~/Qt5.2.0/5.2.0/gcc_64/bin/qmlscene -I ./imports ./test.qm