QTreeWidgetItem::insertChild 不起作用

QTreeWidgetItem::insertChild does not its work

我有一个 QTreeWidget,我想在某个索引处插入一个 child。我试过

void QTreeWidgetItem::insertChild ( int index, QTreeWidgetItem * child )

但是我放置的任何索引,它都会在 parent 具有的所有 children 的末尾插入 child。

我找到了解决方案:

我的第一个代码是这样的

QTreeWidgetItem* newVtxItem = new QTreeWidgetItem(parentItem);
newVtxItem->setText(0, "vtx 1");
newVtxItem->setText(1, "-1");
childOfNameProfile->insertChild(0,newVtxItem);

然后我通过删除新QTreeWidgetItem的parentItem来更正它:

QTreeWidgetItem* newVtxItem = new QTreeWidgetItem();
newVtxItem->setText(0, "vtx 1");
newVtxItem->setText(1, "-1");
childOfNameProfile->insertChild(0,newVtxItem);

之所以在所有children之后插入child是因为当你创建一个QTreeWidgetItem并定义一个parent时,Qt直接把它放在parent的children列表的末尾。所以 insertChild,正如文档所说:

If the child has already been inserted somewhere else it won’t be inserted again.

我希望我能帮助到别人。享受 Qt!