C++ 如何将QStandardItem追加到两行中
我想要的是:C++ 如何将QStandardItem追加到两行中,c++,qt,qtreeview,qstandarditemmodel,qstandarditem,C++,Qt,Qtreeview,Qstandarditemmodel,Qstandarditem,我想要的是: Root ------ item1 | --- newItem |_____ item 2 | --- newItem |_____ item 3 代码如下: QStandardItem *item1 = new QStandardItem(QString("item1")); QStandardItem *item2 = new QStandardItem(QString("item2")); QStand
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),但第二行为空
将项目附加到第一行时,它将获得一个父项,您无法将其添加到另一行。您应该附加项目的副本:
QStandardItem *newItem = new QStandardItem(QString("newItem"));
item1->appendRow(newItem);
item2->appendRow(newItem->clone());