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

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
    }
}

メイン.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: 変数が見つかりません: name

しかし、 でname定義する必要がありXmlRoleます。

4

1 に答える 1

0

リストビューでも高さを設定する必要があります。

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