問題タブ [qabstractlistmodel]

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 投票する
1 に答える
1183 参照

c++ - QTreeView-cell の QComboBox

QTreeView の特定のセル内に QComboBox を表示したいと考えています。独自のモデルを使用する必要があることはわかっています。セルに表示されている QIcons を使用すると、すべてが既に正常に機能していますが、コンボボックスで同じことを行うことができません。それが私のモデルの外観です(いくつかの不完全な擬似コード):

QComboBox を返そうとするとすぐに、コンパイル エラーが発生します。

MyListModel は QAbstractListModel を継承しています。

愚かなアイコンの代わりに QComboBox を使用するために何をしなければならないか考えていますか?

ありがとう!

0 投票する
0 に答える
1190 参照

qml - QML リスト ビュー/C++ リスト モデルの大量のデータ セット

私のプロジェクトでは、QML リスト ビューを使用していくつかのデータのリストを表示する必要があります。使用している QT のバージョンは QT 5.0.2 です。このバージョンの Qt ではスクロール バー ビューを使用できないため、このに従って実装することができました。

現在、データ ソースは、データの範囲を要求する C++ API を提供する別のコンポーネントです。また、データ セット内の要素の数は膨大になる可能性があります (数万単位)。

要件を達成するために、以下の手順に従いました。

  1. QAbstractListModel から継承する C++ クラスを作成し、rowCount、data、canfetchmore および fetch more 関数をオーバーライドしました。
  2. QML では、C++ のインスタンスをモデルと呼んでいます。
  3. fetchmore() 関数が呼び出されるたびに、別のコンポーネントによって提供される C++ API を使用して次のデータ セットを要求し、それをリスト モデルに追加します。

これまでのところ、それは良いです。しかし、私はいくつかの説明が必要です -

  1. リストモデルにデータを追加し続けると、リストに何千もの要素を保存することになります(私はそれをしたくありません)。リストの要素数を制限してリングバッファとして使いたい。これは可能ですか?
  2. fetchmore の QModelIndex パラメータが無効な Index として受信されます。なんで?
  3. ケースを想定します: アルファベットがスクロールバーに記載されており、ユーザーがスクロールバーで Y を選択すると、Y で始まる要素をフェッチする必要があります。ここで、外部コンポーネントからデータをフェッチし、リスト モデルを新しいデータでリセットできます。しかし、そうすると、リストは Y 要素で始まり、上にスクロールして前の要素を取得することができなくなります。-- これを達成する他の方法はありますか?
  4. また、膨大なデータセットを要求すると、他のコンポーネントにかなりの時間がかかります (たとえば、ポイント 3 で述べたような場合) - このケースを処理するためのより良い設計を行うための提案はありますか?
  5. fetchmore() 以外に、モデルを動的に更新する方法はありますか。

質問への回答を得るために Google でかなりの時間を費やしましたが、失敗しました。:(

どんな助けでも感謝します。前もって感謝します。

0 投票する
0 に答える
148 参照

model-view-controller - QListView のドラッグ可能なアイテム

PySide-1.2.2/を使用して、uesrがウィジェット内で要素をドラッグして要素を再配置できるリストウィジェットを作成しようとしていますQt-4.8.7

これは単純で非常に単純QListWidgetです:

QListViewただし、 /で同じことをしようとしていますが、アイテムとその周りをQAbstractListModel「つかむ」ことはできますが、できません。ドキュメントによると、データモデルを設定して正しいを返すだけで十分なはずです。も有効にし、を に設定しましたが、役に立ちませんでした。dragdropsupportedDragActionsflagsdragacceptDropsDragDropModeInternalModeQListView

QAbstractListModelドロップイベントを実際に受信/受け入れるためにオーバーライドする必要があるメソッドがあると思います。しかし、どれですか?

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

qlist - 特定の QAbstractListModel アイテムを更新するにはどうすればよいですか?

QAbstractListModel からクラス FeedItemViewModel を派生させました。リスト モデルにアイテムを追加するメソッドを実装しましたが、特定の ID を持つアイテムを更新する方法もわかりません。

コードは次のとおりです。