0

私のプログラムではQTableViewQAbstractTableModel接続されています。モデルにデータが含まれていません。ビューが表示するデータを必要とする場合、それを呼び出しQAbstractTableModel::data、モデルは別のオブジェクトを使用してデータを取得して返します。ある時点で、そのオブジェクトのデータが変更されます。モデルは何が変更されたかわからないためdataChanged、呼び出されません。

データの目に見える部分 (ビューに表示されている) だけが更新される必要があります。モデルから新しいデータを取得する必要があります。update()ビューの呼び出しまたは関数によってそれを達成しようとしてrepaint()いますが、役に立ちません。paintEventtableviewの呼び出しを考えているのですが、呼び出されません。

ビューの更新をデータの可視部分にするにはどうすればよいですか? 巨大なデータ全体を更新したくありません。

4

1 に答える 1

0

あなたの願いはQt MVCロジックを壊しました。ただし、回避策が必要な場合は、次の呼び出しを行って可視領域を更新できます。emit dataChanged( QModelIndex(), QModelIndex() );

于 2014-06-03T08:16:32.660 に答える