2013-02-07 20 views
10

私はQtモデル/ビューフレームワークを使用しています。モデルのデータをリセットすると、ビューを更新できるようにモデルをリセットする必要があります。どうやってするの? QAbstractItemModelに信号modelReset(QPrivateSignal);が見つかりましたが、これを解決する方法ですか?シグナルを放出する方法は?ありがとう。Qtでモデルをリセットするには?

+1

価値を使用することができる場合があります。すべての変更は何が行われたかによって異なります。モデルリセットは、モデルで大きなカギを実行しているときに便利です。 'beginInsertRow'、' beginMoveRows'、 'beginRemoveRows'があります。これらのメソッドはすべて列にも適用されます。小さな変更を行うつもりならば、小さな変更を適用する代わりにモデル全体を再構築するので、 'beginResetModel'を使わないでください。 –

答えて

11

データをリセットする前にbeginResetModel()に電話をしてから、完了したらendResetModel()に電話してください。 endResetModel()はプライベート信号を発信します。

+0

ありがとうございました。 – Borzh

2

hereが表示されているように、お使いのモデルのサブクラスでリセットコードの周囲にあるbeginResetModel()endResetModel()の関数を使用することをお勧めします。

信号を適切に放射するように処理する必要があります。 qabstractitemmodelサブクラスの

いくつかは、あなたがビューを更新するのに役立つ他の方法があることを言及するmodel.removeRows(0,model.rowCount())(他の人がそれを自分で実装する必要がある)

関連する問題