📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == ListModelは、Qt Quick / QMLにおけるデータモデリングを構成する重要な要素である。<br> これは、QMLで使用できるモデルの1つであり、主にリスト形式のデータを扱うために使用する。<br> <br> ListModelは、動的にデータを追加・削除・変更できる機能を持つ。<br> 各アイテムはJavaScriptオブジェクトとして扱われ、キーと値のペアを保持できる。<br>…」 |
|||
| 62行目: | 62行目: | ||
<br> | <br> | ||
<syntaxhighlight lang="qml"> | <syntaxhighlight lang="qml"> | ||
myModel.append({"name": "John", "age": 30}) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
| 86行目: | 68行目: | ||
指定した位置に新しいアイテムを挿入する。<br> | 指定した位置に新しいアイテムを挿入する。<br> | ||
これは、特定の位置にデータを追加する場合に使用する。<br> | これは、特定の位置にデータを追加する場合に使用する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
myModel.insert(1, {"name": "Mary", "age": 25}) | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== clearメソッド ==== | ==== clearメソッド ==== | ||
モデル内の全てのアイテムを削除する。<br> | モデル内の全てのアイテムを削除する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
myModel.remove(2) // 要素位置が2番目のアイテムを削除 | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== removeメソッド ==== | ==== removeメソッド ==== | ||
指定したインデックスのアイテムを削除する。<br> | 指定したインデックスのアイテムを削除する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
myModel.clear() // 全アイテムを削除 | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== moveメソッド ==== | ==== moveメソッド ==== | ||
アイテムを異なる位置に移動する。<br> | アイテムを異なる位置に移動する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
myModel.move(0, 2, 1) // 要素位置が0番目のアイテムを要素位置の2番目へ移動 | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== getメソッド / setメソッド ==== | ==== getメソッド / setメソッド ==== | ||
| 101行目: | 99行目: | ||
getメソッドは、指定したインデックスのアイテムを取得する。<br> | getメソッドは、指定したインデックスのアイテムを取得する。<br> | ||
setメソッドは、指定したインデックスのアイテムを更新する。<br> | setメソッドは、指定したインデックスのアイテムを更新する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
// getメソッド | |||
let person = myModel.get(0) // 最初のアイテムを取得 | |||
// setメソッド | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== setPropertyメソッド ==== | ==== setPropertyメソッド ==== | ||
特定のアイテムの個別のプロパティを更新する。<br> | 特定のアイテムの個別のプロパティを更新する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
myModel.setProperty(0, "age", 31) // ageプロパティを更新 | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== syncメソッド ==== | ==== syncメソッド ==== | ||
別のListModelやJavaScript配列との同期を取る場合に使用する。<br> | 別のListModelやJavaScript配列との同期を取る場合に使用する。<br> | ||
データソースとして与えられたアイテムの配列で、現在のモデルを更新する。<br> | データソースとして与えられたアイテムの配列で、現在のモデルを更新する。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
myModel.sync(["item1", "item2", "item3"]) | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
==== シグナルハンドラ ==== | ==== シグナル / シグナルハンドラ ==== | ||
モデルの変更を検知するためのものが存在する。<br> | モデルの変更を検知するためのものが存在する。<br> | ||
<br> | <br> | ||
==== countChangedシグナル ==== | ==== countChangedシグナル / onCountChangedシグナルハンドラ ==== | ||
モデル内のアイテム数が変更された場合に発生する。<br> | モデル内のアイテム数が変更された場合に発生する。<br> | ||
これを利用することにより、モデルの状態変化に応じて処理を実行することができる。<br> | これを利用することにより、モデルの状態変化に応じて処理を実行することができる。<br> | ||
<br> | |||
<syntaxhighlight lang="qml"> | |||
onCountChanged: console.log("アイテム数の変更 : ", count) | |||
</syntaxhighlight> | |||
<br> | <br> | ||
==== その他のシグナル ==== | ==== その他のシグナル ==== | ||