我正在开发一个包含QTreeWidget
. 此小部件将具有带有子节点和/或其他兄弟节点的父节点。附加到每个节点将是一个唯一ID
的整数和名称形式。
现在.....我可以或应该使用哪些方法将所有节点保存QTreeWidget
到磁盘以及如何将它们读回??????
我要做的是遍历树并将每个节点保存到 sqlite 数据库中。我已经可以按照与树中完全相同的顺序执行此操作。但是......QTreeWidget
及其相关QTreeWidgetItem
对象没有可用于插入其他节点的 uniq 索引。
当我重建这棵树时,孩子们必须依附于他们的父母/祖先(那时他们已经存在于树中)。为此,我会跟踪ID
已添加到树中的父母及其 s,例如parentID
数组中的 (parent name, )。请注意,作为/parentID
中的节点的位置与位置无关。它是由我自己创建的,并与节点名称一起存储在 sqlite db 中,就像某种标签一样,因为/不提供任何标签。QTreeWidget
WidgetItem
QTreeWidget
QTreeWidgetItem
为了确定正确的父母我
- 从
ParentID
sqlite DB 中获取, - 搜索数组或
QTreeWidget
相同的ID
, - 在 中选择该父级
QTreeWidget
, - 将 sqlite db 项目作为子节点添加到
treeview
.
但是这种方式感觉很笨拙,因为每次添加节点时都会进行搜索,并且由于QTreeWidget
/中缺少索引,WidgetItem
我可以使用它来插入节点。
我知道这应该做得更优雅,资源更少。我不是在寻找确切的编码示例,而是更多地寻找使用 fromQTreeWidget
和的方法和属性的想法和提示QTreeWidgetItem
。
有任何想法吗?