如何将QAbstractItemModel编写为格式化文本?

时间:2015-08-31 14:28:57

标签: c++ qt formatting string-formatting qabstractitemmodel

我有一个填充的QAbstractItemModel对象,例如:

level_1 (root TreeItem)
..+------> level_2_0
.............+------> level_2_0_0
.............+------> level_2_0_1
.............+------> level_2_0_2
..+------> level_2_1
.............+------> level_2_1_0
.............+------> level_2_1_1

我想写格式化输出,如:

#include "level_1"

[name="level_2_0"]
{
value1 : "level_2_0_0";
value2 : "level_2_0_1";
value3 : "level_2_0_2";
}

[name="level_2_1"]
{
value1 : "level_2_1_0";
value2 : "level_2_1_1";
}

我怎样才能成为这个专业人士?当我有令牌level_2_0时,我必须等待它的三个孩子,关闭"}"支架

1 个答案:

答案 0 :(得分:1)

我认为你想要的是深度优先搜索。您通过转到第一个节点(在您的情况下为level_2_0),然后转到其所有子节点(level_2_0_n),然后转到根的下一个子节点(level_2_1)等来遍历树...

您可以在https://en.wikipedia.org/wiki/Depth-first_search

找到伪代码和更好的解释