36

Qt のこのモデル/ビュー フレームワークは初めてです。私のアプリケーションでは、1000 X 1000 セルが必要です。最小限のメモリ要件が必要であり、高速である必要があります。このモデル用語が何のためのものかわかりません。しかし、テーブルに格納されている double 変数を処理する方法を知っている独自のクラスがあります。現在、Validator で QLineEdit を使用してセルの配列を作成しています。しかし、50 X 50 を超えるセルには遅すぎたので、古き良き MS Excel の方法を使用することにしました。

では、どのウィジェットを使用する必要がありますか:QTableWidgetまたはQTableView?

そして、このモデル/ビューフレームワークが何であるかを簡単に説明してもらえますか? 私はコンピューターサイエンスの専門家ではないので、理解するのは難しいと思います...

4

2 に答える 2

29

cmannett85 の推奨は良いものです。ドキュメントを十数回読んでください。

次に、パフォーマンスとメモリの問題が主な関心事であり、QTableWidget 実装よりもパフォーマンスが優れていると思われる場合は、 QAbstractTableModelまたはQStandardItemModelの上にあるQTableViewインターフェイスが探しているものです。

Qt のモデル ビュー アーキテクチャは初めてなので、慣れるまでは QStandardItemModel を使用することをお勧めします。それでもパフォーマンスが十分でない場合は、カスタム モデルを実装して、多くのメモリの重複と無駄なオブジェクトを回避してください。さらに、良い教科書を用意して、モデル ビュー フレームワークに関する章を約 12 回読んでください。そのセクションだけでも、金の重さの価値がありました。

Qt のカスタム モデル ビュー フレームワークの基本は次のとおりです。

  • 実際のデータはリスト/ツリーのどこかに保存されます
  • モデルは、データのクエリと編集のための標準フレームワークを提供します
  • プロキシ モデルを使用すると、元のモデルに影響を与えずにデータを並べ替え/フィルター処理できます
  • ビューは、データを視覚的に観察して操作する手段を提供します
  • デリゲート(多くの場合オプション) は、データの外観を微調整し、データにカスタム エディターを提供します

安っぽくもあり勇敢でもあると感じている場合は、独自のカスタム モデルの実装に関するこの抜粋を確認してください。一度に 1 つの機能で作業し、操作しながら操作します。

于 2013-03-08T18:33:09.617 に答える
18

フレームワークを理解するには、それに関するドキュメントから始めてください。ゆっくりと始まりますが、適度に広範になり、関連するほとんどのクラスをカバーします。

QTableWidget または QTableView?

ドキュメントを読めば、この質問が実際には意味をなさない理由がわかります。aはデータを表示するために aをQTableWidget 使用します。(などとともに)MVCフレームワークを使用しますが、ほとんどの目的に役立つ便利なパッケージにすべてをカプセル化しますが、何か違うことをする必要がある場合は、それをコンポーネントパーツに分解し、必要なビットを再実装する必要があります必要。QTableViewQTableWidgetQTreeWidget

于 2013-03-08T09:49:48.280 に答える