プレースホルダデータのロード
Qt Quick Designer はビュー、モデル、およびデリゲートをサポートしており、グリッドビュー、リストビュー、またはパスビューのコンポーネントを追加すると、ListModel とデリゲートコンポーネントが自動的に追加されます。
しかし、アプリケーションのコンテキストがないことが課題となります。C++ で定義された特定のモデルは、最も明白なケースです。多くの場合、コンテキストには単純なプロパティが欠けており、それらは C++ で定義されているか、他のコンポーネント・ファイルで定義されています。典型的な例は、parent.width のような、親のプロパティを使用するコンポーネントです。
ダミー・モデルの使用
2D 、C++モデルを参照するファイルを開くと、そこには何も表示されません。モデル内のデータをインターネットから取得しても、それを制御することはできません。信頼できるデータを取得するには、ダミー・データを使用します。
例えば、以下のコード・スニペットでは、ListView 、C++モデルを指定するexample.qml :
ListView { model: dataModel delegate: ContactDelegate { name: name } }
デバイスにデプロイされないように、プロジェクトのルート・ディレクトリーにdummydataという名前のディレクトリーを作成する。dummydata ディレクトリに、model の値と同じ名前のファイル(.qml )を作成します:
qml/exampleapp/example.qml dummydata/dataModel.qml
次に、ダミー・データを含むdataModel.qml ファイルを作成します:
import QtQuick 2.0 ListModel { ListElement { name: "Ariane" } ListElement { name: "Bella" } ListElement { name: "Corinna" } }
ダミー・コンテキストの作成
次の例は、よくあるパターンを示している:
Item { width: parent.width height: parent.height }
これはアプリケーションにはうまく機能するが、2D のビューにはゼロサイズのコンポーネントが表示される。コンテキストがないため、開かれたファイルの親が存在しません。コンテキストの欠落を回避するために、ダミー・コンテキストのアイデアが導入されている。アプリケーションと同じ名前のファイル(ここではexample.qml )をdummydata/context ディレクトリに置くと、親コンテキストを偽装することができます:
import QtQuick 2.0 import QmlDesigner 1.0 DummyContextObject { parent: Item { width: 640 height: 300 } }
ハウツーも参照してください: Qt Quick UIのデザイン、Qt Quick UIのデザイン、 Qt Quick UIのデザインも参照してください。
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.