QTreeWidget在C ++中从内存中扩展单个项目

时间:2014-11-28 12:02:23

标签: c++ qt qtreewidget qtreewidgetitem

我有一个Qt QTreeWidget,我正在尝试保存扩展标题项的状态,这样当我用新信息刷新我的树时,它可以重新展开之前扩展的项目。

每次发出itemExpandeditemCollapsed signal时,我会在slot中将其捕获并保存到成员boolean以表示该特定项目是否已展开truefalse。这是我的记忆。

刷新树时,我使用

完全清除树
clear();

接下来,我使用

折叠所有标题
collapseAll();

现在,我想恢复哪些项目已展开,并使用每个boolean将其设置为展开,以表示该项目之前是使用

进行展开还是折叠
expandItem();

我不是特别确定如何从boolean单独获取该项目的索引。

我想到了

indexOfTopLevelItem(0);

会在0位给我toplevelitem的索引,然后使用与位置0关联的boolean,然后我可以决定是否展开该项目吗?

这也无法解决我想要对每个'布尔'做的问题。我已经代表了树中的每个项目。

提前致谢。

1 个答案:

答案 0 :(得分:0)

itemExpanded()信号的参数是指向QTreeWidgetItem的指针。使用指向QTreeWidgetItem的指针,您可以调用QTreeWidget::indexOfTopLevelItem,这将返回展开项目的索引。如果你只是用你的布尔值存储它,你应该有足够的信息来恢复项目'内容更新后的状态。