0

我想要的是:

Root ------ item1
     |         --- newItem
     |_____ item 2
     |         --- newItem
     |_____ item 3

这是代码:

QStandardItem *item1 = new QStandardItem(QString("item1"));
QStandardItem *item2 = new QStandardItem(QString("item2"));
QStandardItem *item3 = new QStandardItem(QString("item3"));

QStandardItem *rootNode = standardModel->invisibleRootItem();

rootNode->appendRow(item1);
rootNode->appendRow(item2);
rootNode->appendRow(item3);

QStandardItem *newItem = new QStandardItem(QString("newItem"));

item1->appendRow(newItem);
item2->appendRow(newItem);

当它运行时,我看到 newItem 被附加到 item1 上,没有任何问题。但是,在第二个(item2)上, newItem 被附加但作为一个空白项。

它有什么问题?

编辑: 这是我的意思的打印屏幕。newItems 出现在第一行 (QStandardItem),但第二行为空白。

在此处输入图像描述

4

1 回答 1

2

当您将项目附加到第一行时,它会获得一个父项,您不能将其添加到另一行。您应该附加该项目的副本:

QStandardItem *newItem = new QStandardItem(QString("newItem"));

item1->appendRow(newItem);
item2->appendRow(newItem->clone());
于 2014-07-07T13:40:08.290 回答