問題タブ [qmodelindex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
849 参照

python - QAbstractItemModel と QModelIndex の相互作用

次の質問は、QAbstractItemModelおよびQModelIndexクラスの設計とそれらの間の相互作用に関するもので、以下のコード サンプルで強調されています。

  1. の作成方法QModelIndex。ドキュメントを読んだところ、答えはQAbstractItemModel::createIndex()ですが、この関数は ModelIndex の親からのオフセットに関する情報を提供しないため、不完全なようです。むしろ、これはQAbstractItemModel::index()によって行われます。両方の機能を一緒に再生する方法はありますか?
  2. データはモデル インデックスにどのように保存する必要がありますか? また、モデル インデックスと内部ポインター(用語は不明) によって、またはモデル インデックスに保存されるデータの違いは何ですか? また、 setData 関数がない場合、モデル インデックスは返すデータをどこで取得するのでしょうか。内部ポインタはデータですか? それはデータになることができますか?
  3. ModelIndex とモデルによって返されるデータの違いは何ですか? つまりQModelIndex::data()QAbstractItemModel::data( QModelIndex , int ) ? そして、セッターQAbstractItemModel::setData( QModelIndex , ... )は単に仮想であるのに、ゲッターQAbstractItemModel::data( QModelIndex , ... ) は純粋な仮想であるのはなぜですか。確かに、API は保存したデータを返すことができるはずです。

私の質問はC++ APIにリンクしていますが、スニペットはPySideにあります。この質問は両方の API にまたがっているため、そうしました。