Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将QStandardItem追加到两行中_C++_Qt_Qtreeview_Qstandarditemmodel_Qstandarditem - Fatal编程技术网

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());