2017-06-25 6 views
0

からQMLデータを読み込む:Qtはだから私はこのような<em>data.txtを</em>どこのデータ持ったファイル

ListElement{ longitude: "0"; latitude: "0"; height: "-700.114"; } 
    ListElement{ longitude: "0"; latitude: "1"; height: "-698.214"; } 
    ListElement{ longitude: "0"; latitude: "2"; height: "-695.955"; } 
    ListElement{ longitude: "0"; latitude: "3"; height: "-706.116"; } 
    [...] 

をし、私はその

import QtQuick 2.1 

Item { 
    property alias model: dataModel 


//! [0] 

ListModel{ 
    id: dataModel 
    ListElement{ longitude: "0"; latitude: "0"; height: "-700.114"; } 
    ListElement{ longitude: "0"; latitude: "1"; height: "-698.214"; } 
    ListElement{ longitude: "0"; latitude: "2"; height: "-695.955"; } 
    ListElement{ longitude: "0"; latitude: "3"; height: "-706.116"; } 
    [...] 

    } 
} 
よう Data.qmlにこのデータを追加する必要があります

どうやって?

答えて

1

はじめに、QMLコードではなく、データ形式を一般的なものにしておくことをお勧めします。 QMLはGUIを対象としているため、コードを一般的に保守しやすいようにするには、アプリケーションロジックとGUIコードの混在を避けることが重要です。たとえば、JSON形式を使用してC++からロードしたり、QMLからロードする場合はJSON.parse javascript関数を直接使用できます。

DataModel.qml

ListModel { 
    ListElement{ longitude: "0"; latitude: "0"; height: "-700.114"; } 
    ListElement{ longitude: "0"; latitude: "1"; height: "-698.214"; } 
    ListElement{ longitude: "0"; latitude: "2"; height: "-695.955"; } 
    ListElement{ longitude: "0"; latitude: "3"; height: "-706.116"; } 
} 

そしてコンポーネントを作成するために、Qt.createComponent()メソッドを使用して、:言われて、あなたはインスタンスの分離.qmlファイルにあなたのQMLモデルを置くことができる

あなたはその方法で使うことができます:

function loadModel() { 
    // Create the component 
    var component = Qt.createComponent("DataModel.qml"); 

    if (component.status == Component.Ready) { 
     // Instantiate the object given a parent 
     var model = component.createObject(qmlParentId); 

     // Assign the newly created object to your property 
     root.model = model 
    } 
} 

ロードされると、モデルが利用可能になります。

+0

しかし、私はテキストをtxtファイルからListModel {}に入れなければなりません – icegas

+0

次に、文字列を取るQMLの "Qt.createQmlObject"が最も近いです。しかし、 "テキストをtxtファイルから入れる"というようなことはありません。あなたが本当に良い理由を持っている場合を除いて、このアプローチは私には間違っているようです。 –

関連する問題