プレースホルダーデータの読み込み
Qt Quick Designerはビュー、モデル、デリゲートをサポートしているため、Grid View、List View、またはPath Viewコンポーネントを追加すると、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 のビューにはサイズが0のコンポーネントが表示されます。コンテキストが存在しないため、開かれたファイルの親コンテキストが存在しないのです。このコンテキストの欠如を回避するために、ダミーコンテキストという概念が導入されています。dummydata/context ディレクトリに、アプリケーションと同じ名前(ここではexample.qml )のファイルを配置することで、親コンテキストを偽装することができます:
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.