有一个从JSON文件中获取的字典,由QTreeView
QStandardItemModel
表示。
用户可以重新组织QTreeView
(添加,删除,拖放)和重命名项目。
目标是:调用读取已更改的QTreeView
的函数,生成字典并将其写入初始JSON文件。
我可以通过在发生更改后按下QPushButton
或通过将该功能绑定到每个更改来实现,例如删除项目时调用函数,添加项目时调用函数,重命名项目时调用函数等。
如果发生任何变化,有没有办法调用函数?是否存在与所有上述变化相对应的信号?
rowsMoved
和itemChanged
信号做你认为他们做的。见http://doc.qt.io/qt-4.8/qstandarditemmodel.html
正如@vahancho在评论中建议的那样,你应该连接到layoutChanged信号。在进行任何可能影响视图的更改后,所有模型都应该立即发出这种情况。所以这将包括排序和过滤,以及重新排序,编辑,删除等。
dataChanged信号类似,但只有在您想要监控特定项目时才真正有用。