我有一个Qt QTreeWidget
,我正在尝试保存扩展标题项的状态,这样当我用新信息刷新我的树时,它可以重新展开之前扩展的项目。
每次发出itemExpanded
或itemCollapsed
signal
时,我会在slot
中将其捕获并保存到成员boolean
以表示该特定项目是否已展开true
或false
。这是我的记忆。
刷新树时,我使用
完全清除树clear();
接下来,我使用
折叠所有标题collapseAll();
现在,我想恢复哪些项目已展开,并使用每个boolean
将其设置为展开,以表示该项目之前是使用
expandItem();
我不是特别确定如何从boolean
单独获取该项目的索引。
我想到了
indexOfTopLevelItem(0);
会在0位给我toplevelitem
的索引,然后使用与位置0关联的boolean
,然后我可以决定是否展开该项目吗?
这也无法解决我想要对每个'布尔'做的问题。我已经代表了树中的每个项目。
提前致谢。
答案 0 :(得分:0)
itemExpanded()
信号的参数是指向QTreeWidgetItem
的指针。使用指向QTreeWidgetItem
的指针,您可以调用QTreeWidget::indexOfTopLevelItem
,这将返回展开项目的索引。如果你只是用你的布尔值存储它,你应该有足够的信息来恢复项目'内容更新后的状态。