【问题标题】:PyQt TreeWidget Smooth updating (model-view?)PyQt QTreeWidget 平滑更新(模型视图?)
【发布时间】:2015-09-29 13:42:59
【问题描述】:

我正在尝试每 60 秒更新一次 QTreeWidget。我现在在 QTimer 上拥有它,但我担心的是,当它更新时会破坏用户的进度(例如,如果他们打开了父级以便您可以看到子级,当我更新它时会完全重置结构)。有什么模型或我可以做些什么来防止这影响他们的进步吗?

【问题讨论】:

    标签: pyqt qtreeview qtreewidget qtreewidgetitem


    【解决方案1】:

    视图无法更新并记住先前展开的项目。您可以缓存视图的状态并在更新后使用QTreeWidget::expandQTreeWidget::scrollTo 重建它,但用户仍会看到视图如何关闭和再次展开。此外,仅存储当前扩展项目的索引是不够的,因为更新后可能会发生变化。所以你必须缓存一些唯一标识符,然后在更新的小部件中搜索它。

    您尝试执行的操作非常不寻常,因为通常您只会在数据更改时更新小部件,而不是使用固定的时间间隔。

    考虑将 QTreeView 与 QAbstractListModel 结合使用,而不是 QTreeWidget,因为后者旨在保存常量数据。然后您可以在自动更新 QTreeView 的模型上发出 dataChanged。

    【讨论】:

    • 感谢您的建议,我想我会尝试实现一个 TreeView 并在数据更改时更新它。我会告诉你进展如何。
    猜你喜欢
    • 2016-10-04
    • 2012-12-09
    • 2013-12-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多