我有一个QTreeView,其数据随着时间的推移而变化,每秒都会在QAbstractItemModel中发出一个dataChanged信号。 QTreeView中的项目也可以编辑,但是当为某个项目打开编辑器时,编辑字符串会在我编辑时更新,这非常烦人。有什么方法可以阻止使用新值更新编辑器?
答案 0 :(得分:1)
您是否在QTreeView中使用自己的模型?在这种情况下,您将覆盖它,而不是为Qt :: EditRole返回任何数据。如果你不方便(你想在开始编辑它时在字段中获得当前数据),那么你可以创建自己的QItemDelegate / QStyledItemDelegate并在那里实现一些自定义逻辑:使它不会更新小部件例如,当它具有焦点时,使用新值。
虽然我可能会遗漏某些东西,但有一种更简单的方法可以做到这一点。