1

で表される JSON ファイルから取得した辞書がありますQTreeView QStandardItemModel

ユーザーは項目を再編成QTreeView(追加、削除、ドラッグ アンド ドロップ) し、名前を変更できます。

目標は、 changed を読み取る関数を呼び出しQTreeView、辞書を作成し、それを最初の JSON ファイルに書き込むことです。

変更が発生した後に a を押すQPushButtonか、その関数をすべての変更にバインドすることで実行できます。たとえば、アイテムが削除されたときに関数を呼び出す、アイテムが追加されたときに関数を呼び出す、アイテムの名前が変更されたときに関数を呼び出すなどです。

変更が発生した場合に関数を呼び出す方法はありますか? 上記のすべての変更に対応するシグナルはありますか?

4

2 に答える 2

1

@vahancho がコメントで示唆しているように、layoutChangedシグナルに接続する必要があります。すべてのモデルは、ビューに影響を与える可能性のある変更を行った後、すぐにこれを発行する必要あります。したがって、これには並べ替えとフィルタリング、並べ替え、編集、削除などが含まれます。

dataChangedシグナルも同様ですが、特定のアイテムを監視する場合にのみ役立ちます。

于 2015-06-22T16:22:55.483 に答える
1

rowsMovedと信号は、itemChangedあなたが思っていることをします。http://doc.qt.io/qt-4.8/qstandarditemmodel.htmlを参照してください。

于 2015-06-22T13:18:37.283 に答える