2013-10-25 49 views
0

我是QML的新手。我無法讓這些代碼工作。QML XML列表視圖不能正常工作

Model.qml

import QtQuick 1.1 

XmlListModel { 
    source: "./test.xml" 
    query: "/tag1/tag2" 
    onSourceChanged: { 
    console.log("source changed:" + source) 
     reload() 
    } 

    XmlRole { name: "id"; query: "id/string()" } 
    XmlRole { name: "name"; query: "name/string()" } 
} 

View.qml

import QtQuick 1.1 

ListView { 
    width: 200 
} 

TheDelegate.qml

import QtQuick 1.1 

Rectangle { 
    width: parent.width 
    height: 20 

    Text { 
     text: id + ": " + name 
    } 
} 

Main.qml

import QtQuick 1.1 

Item { 
    id: container 

    Model { 
     id: resultModel 
    objectName: "resultModel" 
    } 

    View { 
     id: resultView 
     model: resultModel 
     delegate: TheDelegate {} 
    } 
} 

在我main.cpp中

int main(int argc, char** argv) 
{ 
    QApplication app(argc, argv); 

    QDeclarativeView view; 
    view.setResizeMode(QDeclarativeView::SizeRootObjectToView); 
    view.setSource(QUrl::fromLocalFile("./TheMain.qml")); 
    view.show(); 

    int rtnVal = app.exec(); 
    return rtnVal; 
} 

當我運行該項目時,它只顯示任何內容,沒有窗口顯示。

在此先感謝。


編輯:

我使用qmlviewer(4.8.4)調試我qmls,我得到警告:

TheDelegate.qml:18: ReferenceError: Can't find variable: name

但是,我必須在規定nameXmlRole

回答

0

您還需要爲列表視圖設置高度。

ListView { 
    width: 200 
    height: parent.height; 
} 
+0

我試過你說的,沒有效果。 – helsinki