AbstractItemModel QAbstractItemView QAbstractItemDelegate
「モード/ビュー フレームワーク」からのものです。
これは、アプリケーションのデータ部分のための非常に強力なフレームワークです。フレームワークのプレゼンテーションを次に示します。
QAbstractItemModel
MVCのモデルの基本クラスです。データにアクセスして変更するためのグローバル インターフェイスを持ち、Observable 部分を処理します。
QAbstractItemView
MVCのビューの基本クラスです。ビュー/選択部分のグローバル インターフェイスがあり、オブザーバー部分を処理します。オブザーバー パターンについて心配する必要はありません。フレームワークが自動的に行います。
QAbstractItemDelegate
MVCのコントローラーの基本クラスです。
描画、要素の編集、...
QGraphicsScene / QGraphicsView
「グラフィック ビュー フレームワーク」からのものであり、モデル/ビュー フレームワークから独立しています。
これは、グラフィック部分の非常に強力なフレームワークでもあります。
シーン
QGraphicsScene は Graphics View シーンを提供します。シーンには次の責任があります。
多数のアイテムを管理するための高速インターフェイスを提供する イベントを各アイテムに伝達する 選択やフォーカスの処理など、アイテムの状態を管理する 非変換レンダリング機能を提供する。主に印刷用
景色
QGraphicsView は、シーンのコンテンツを視覚化するビュー ウィジェットを提供します。複数のビューを同じシーンにアタッチして、複数のビューポートを同じデータ セットに提供できます。
モデルを QGraphicsView で表示したい場合は、QAbstractItemView に基づいて独自のビューを作成する必要があります。
QGraphicsView をビュー ポート ウィジェットとして使用するQAbstractScrollArea::setViewport(QWidget * widget))
と、次のことができます
- 追加
QAbstractItemView::rowsInserted
、
- 削除する
QAbstractItemView::rowsAboutToBeRemoved
- 変更する
QAbstractItemView::dataChanged
シーンのアイテム。レイアウト変更イベントのリセットに注意することを忘れないでください。