Qt中,一棵树怎么能够添加两个同样的结点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt中,一棵树怎么能够添加两个同样的结点相关的知识,希望对你有一定的参考价值。

我现在需要创建一棵树,一个QTreeWidgetItem下需要插入两个相同的child,这child已经定义。但是QTreeWidgetItem得insertChild和addChild都不能重复插入同一个结点,大家有好主意么?

复制节点,用新名称引用,这样就有2个不同名 内容相同的节点了。可以满足需求。追问

item//根节点
leafNode//相同的叶子节点
for (int i = 0; i setText(0,“1234”);
item->addChild(tmp);

我是这样写的,但是不行。

追答

报甚麼错呢?

追问

没有报错,但是显示出来的只有一个结点。

追答

我刚说错了,不是用新名称引用,我意思是创建2个新节点,内容相同,但是不是同一块内存的东西。

追问

怎么才能做到呢?不管创建多少个新节点,都要有tmp=leafNode;这句话。这样是不是就指向同一块内存了?能不能提供一下代码呢?

追答

这个我没做过,只能给你提供一个参考方向。不好意思

追问

哦,好吧,看来还是得实践。

追答

是的,加油啊!妹子程序员~

追问

额,妹子程序员是不是继女博士之后的第四类人?

追答

不是,因为这个世界上还有很多没有女盆友的汉子IT男!

追问

那就加油加油啦~~

追答

看来为了怎样找女盆友这个问题我也可以去投个百分的题目了~

追问

你要投了我就去抢沙发!

追答

我还真投了~

参考技术A item//根节点
leafNode//相同的叶子节点
for (int i = 0; i < 2; ++i)

QTreeWidgetItem *tmp = new QTreeWidgetItem();
tmp=leafNode;
tmp->setText(0,“1234”);
item->addChild(tmp);


看了你写的,tmp=leafNode;你这样写不就只能有一个么追问

那应该怎么写呢?我要在树上添加多个leafNode。

以上是关于Qt中,一棵树怎么能够添加两个同样的结点的主要内容,如果未能解决你的问题,请参考以下文章

模板tyvjP1520 树的直径 [2017年5月计划 清北学堂Day3]

红黑树

Tyvj P1520 树的直径

树堆

Qt中获取控件所在界面的位置,该怎么解决

树形DP