XmlListModel QML Type

XMLデータを使用して読み取り専用モデルを指定します。詳細...

Import Statement: import QtQml.XmlListModel

プロパティ

メソッド

詳細説明

この要素を使用するには、以下の行でモジュールをインポートする必要があります:

import QtQml.XmlListModel

XmlListModel は、XML データから読み取り専用のモデルを作成するために使用されます。これは、ビュー要素(ListView、PathView、GridView など)や、モデルデータと相互作用する他の要素(Repeater など)のためのデータソースとして使用することができます。

注: このモデルは XPath クエリをサポートしていません。単純なスラッシュ区切りのパスと、オプションとして、各要素に対して1つの属性をサポートします。

例えば、https://www.qt.io/blog/rss.xml に以下のような XML ドキュメントがあるとします:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  ...
  <channel>
    <item>
      <title>Qt 6.0.2 Released</title>
      <link>https://www.qt.io/blog/qt-6.0.2-released</link>
      <pubDate>Wed, 03 Mar 2021 12:40:43 GMT</pubDate>
    </item>
    <item>
      <title>Qt 6.1 Beta Released</title>
      <link>https://www.qt.io/blog/qt-6.1-beta-released</link>
      <pubDate>Tue, 02 Mar 2021 13:05:47 GMT</pubDate>
    </item>
    <item>
      <title>Qt Creator 4.14.1 released</title>
      <link>https://www.qt.io/blog/qt-creator-4.14.1-released</link>
      <pubDate>Wed, 24 Feb 2021 13:53:21 GMT</pubDate>
    </item>
  </channel>
</rss>

XmlListModel はこのデータから次のようなモデルを作成することができます:

import QtQml.XmlListModel

XmlListModel {
    id: xmlModel
    source: "https://www.qt.io/blog/rss.xml"
    query: "/rss/channel/item"

    XmlListModelRole { name: "title"; elementName: "title" }
    XmlListModelRole { name: "pubDate"; elementName: "pubDate" }
    XmlListModelRole { name: "link"; elementName: "link" }
}

query の値 "/rss/channel/item" は、XmlListModel が XML ドキュメント内の<item> それぞれに対してモデルアイテムを生成することを指定します。

XmlListModelRole オブジェクトはモデルアイテムの属性を定義します。ここでは、各モデル・アイテムは、対応する<item>titlepubDatelink の値と一致するtitlepubDatelink 属性を持ちます(詳しい例はXmlListModelRole のドキュメントを参照してください)。

このモデルは、このようにリストビューで使用することができます:

ListView {
    width: 180; height: 300
    model: xmlModel
    delegate: Text { text: title + ": " + pubDate + "; link: " + link }
}

XmlListModel のデータは非同期にロードされ、ロードが完了するとstatusXmlListModel.Ready に設定されます。これは、XmlListModel がビューに使用される場合、モデルが読み込まれるまでビューにデータが入力されないことを意味します。

プロパティの説明

count : int

モデル内のデータエントリ数。


progress : real

これは、XML データソースのダウンロードの現在の進行状況を示します。この値の範囲は、0.0 (データがダウンロードされていない) から 1.0 (すべてのデータがダウンロードされた) までです。XMLデータがリモート・ソースからのものでない場合、データが読み込まれるとすぐに進行状況は1.0になります。

進行状況が1.0の場合、XMLデータはダウンロードされていますが、この時点ではまだモデルに読み込まれていないことに注意してください。XMLデータがいつ読み込まれ、モデルにロードされたかを知るには、statusプロパティを使用します。

status およびsourceも参照して ください。


query : string

このモデルのXmlListModelRole オブジェクトからモデル・アイテムを作成するためのベース・パスを表す文字列。クエリは'/' で始まる必要があります。


このモデルで利用可能にするロール。


source : url

XML データ・ソースの場所。


status : enumeration

モデルのロード・ステータスを指定します:

定数説明
XmlListModel.Nullこのモデルには XML データが設定されていません。
XmlListModel.ReadyXML データはモデルにロードされています。
XmlListModel.Loadingモデルは XML データを読み込んでいる最中です。
XmlListModel.Errorモデルの読み込み中にエラーが発生しました。エラーの詳細については、errorString() を参照してください。

progressも参照して ください。


メソッド・ドキュメント

errorString()

statusXmlListModel.Error の場合、最後に発生したエラーの説明を文字列で返します。


reload()

モデルをリロードします。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します このドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。