我想要的是:
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),但在第二行显示为空白。
答案 0 :(得分:2)
当您将项目追加到第一行时,它会获得父项,您无法将其添加到另一行。您应该附上该项目的副本:
QStandardItem *newItem = new QStandardItem(QString("newItem"));
item1->appendRow(newItem);
item2->appendRow(newItem->clone());