私は自分の問題を説明するのに苦労しているので、できるだけ簡単にして、うまくいくことを願っています。QtQuick 2.0 で Qt5 を使用しています。
QAbstractListModel から継承し、MyListItem タイプのアイテムを保持する MyListModel クラスを作成しました。QML ListView で として使用するmodel: myListModel
と、デリゲートはquantity
MyListItem のプロパティを素敵な TextInput ボックスに表示します。すべて正常に動作します。
ただし、quantity
デリゲートから値を変更しても、モデル内のアイテムは更新されません。MyListItem のメンバーである関数が実行されないため、それらが更新されていないことはわかっています。setQuantity(long desired_quantity)
簡単に言うと、デリゲート内から setQuantity 関数を実際に呼び出す方法がわかりません。Q_PROPERTY(long quantity READ quantity WRITE setQuantity)
MyListItem に追加し、それを使用してオブジェクトを QMLsetContextProperty()
に公開し、. しかし明らかに、デリゲートが数量プロパティに書き込むことができない場合 (読み取ることしかできない場合)、それは仕事をしていません。MyListItem myTemp
myTemp.quantity = 10
誰かが私を正しい方向に向けることができますか? Qt の設計者が期待していた可能性のあるすべてのことを試したような気がしますが、何も得られませんでした。また、私の問題を明確に説明しているドキュメントが見つかりません。