0

所以我正在研究简单的 xml 阅读器,我想在树上显示 xml。

因此,为了了解树上的哪个项目是 xml 文件中的项目,我制作了一个 QMap:

QMap<QDomNode*,QStandardItem*> connectDomNodeAndStandardItem;

但是当我使用它的任何方法时,似乎会QDomNode创建全新的对象结构:

QDomNode *node = &_xmlDocument.firstChild();
qDebug() << node;
node = &node->firstChild();
qDebug() << &node->parentNode();

输出:

0x41be60
0x41be28

所以我的问题是 - 我如何QDomNodeQStandardItem

4

1 回答 1

1

QDomeNode是一个使用显式共享的类。这意味着同一节点的所有副本都对相同的数据进行操作。所以你不必使用指针。而地址不同的原因是因为QDomNode::parentNode返回了父级的副本。

于 2016-01-22T14:31:16.100 回答