停止更新单个 QModelIndex

发布于 2024-08-27 23:51:43 字数 159 浏览 8 评论 0原文

我有一个 QTreeView,其中的数据随着时间的推移而变化,每秒在 QAbstractItemModel 中发出一个 dataChanged 信号。 QTreeView 中的项目也可以编辑,但是当为某个项目打开编辑器时,编辑器字符串会在我编辑时更新,这非常烦人。有什么方法可以防止编辑器被更新为新值吗?

I have a QTreeView with data that changes over time, with a dataChanged signal being emitted in the QAbstractItemModel every second. The items in the QTreeView can be edited as well, but when a editor is opened for a certain item the editor string is updated while I edit is, which is very annoying. Any way to prevent an editor to be updated with the new values?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥抱影子 2024-09-03 23:51:43

您是否在 QTreeView 中使用自己的模型?在这种情况下,您将覆盖它并且不返回 Qt::EditRole 的任何数据。如果这对您来说不方便(您希望在开始编辑时在字段中包含当前数据),那么您可以创建自己的 QItemDelegate/QStyledItemDelegate 并在那里实现一些自定义逻辑:使其不更新小部件例如,当它具有焦点时,就会具有新的价值。

虽然我可能会遗漏一些东西,但有一种更简单的方法可以做到这一点。

Do you use your own model with QTreeView? In this case you overwrite it and not return any data for Qt::EditRole. If it is not convenient for you (you want to have the current data in the field when you begin to edit it), then you could create your own QItemDelegate/QStyledItemDelegate and implement some custom logic there: make it so the widget is not updated with new value, when it has focus, for example.

Althought I might be missing something, and there is an easier way to do this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文