0

我是 QML 的新手。我无法让这些代码正常工作。

模型.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()" }
}

查看.qml

import QtQuick 1.1

ListView {
    width: 200
}

TheDelegate.qml

import QtQuick 1.1

Rectangle {
    width: parent.width
    height: 20

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

主.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:找不到变量:名称

但我必须nameXmlRole.

4

1 回答 1

0

您还需要为列表视图设置高度。

ListView {
    width: 200
    height: parent.height;
}
于 2013-10-25T04:03:15.480 回答