おそらく私はこれについてすべて間違っていると思っているかもしれませんが、はQtで作業ツリーモデルを持っていると奇妙に思えるので、アイテムクラスにデータをラップする必要があります。Pysideのツリーモデル
QTreeView用に作成された各モデルでは、カスタムNodeまたはTreeItemクラス(多くの場合、型(オブジェクト))の実装が必要でした。これは、多くの理由で私に奇妙なものです:
)モデルがデータを直接抽出できる点ではありませんか?ノードまたはTreeItemクラスは余分な手荷物のようです。
b)ツリービューに特別なアイテム/ノードクラスが必要な場合でも、そのクラスがQObjectのようなものではないのはなぜですか?私が見たNode実装のほとんどはget/set親/子メソッドと属性の集合を持っています。 QObjectを使ってみると、すでにすべて組み込まれているようですが、なぜそれを使わないのですか?
ツリーモデルを実装するために余分なNodeクラスが必要な場合は、Qtフレームワークデザインのギャップがあるか、またはそれ。
私はQStandardItemとQStandardItemModelを漠然と認識していますが、他のモデル&のmodelItemsと同じようにQtGuiではなくQtCoreの一部である理由を尋ねています。これらのクラスをQtGuiでグループ化すると、ビュー&のモデルが混在しているように感じます。 QtGuiクラス(QtCoreのクラスから継承していない)から継承していないので、QtGuiにもなぜこのようになっているのか理解できません。
誰もがこのデザインを正当化できるとすれば、私はそれを誤解していると説明しています(または私の欲求不満に関連しています)。
ありがとうございます!
これは納得のいかないことです。data/setDataメソッドはデータを直接提供できるはずです。しかし、公式Qtの例でさえどこでも実演されていることを見るのは難しいと思っています。あなたが私に非常に助けてくれる2つの深いツリーモデルの実装を提供できるかどうか。私はcreateIndex()とparentのように、定義する必要のあるメソッドがあることを知っていますが、内部的に(またはビューと通信するときに)どのように使用されるかは少し不透明です。 –
おそらく、私が最も苦労しているのは、操作の流れを理解していて、循環依存性を感じているという感じです。データ要求はインデックスに渡され、そのインデックスはcreateIndex()の行、col、parentに渡され、親は子を持ちます。子はインデックスを持ちますが、私は迷っています。 –