0

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

每次发出itemExpandedor时itemCollapsed signal,我都会在 a 中捕获它slot并保存到boolean该特定项目的成员中,以表示 expand 是 nowtrue还是false. 这是我的记忆。

刷新树时,我使用完全清除树

clear();

接下来我使用折叠所有标题

collapseAll();

现在我想恢复哪些项目已展开,并使用boolean我拥有的每个项目将它们设置为展开,这表示该项目之前是使用展开还是折叠

expandItem();

我不太确定如何从我boolean自己那里获取项目的索引。

我会认为

indexOfTopLevelItem(0);

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

这也不能解决我想要对代表树中每个项目的每个“布尔值”执行此操作的问题。

提前致谢。

4

1 回答 1

0

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

于 2014-11-28T12:19:52.710 回答