QTreeView显示XML C++代码
时间: 2023-07-10 22:25:49 浏览: 133
TreeView显示XML文件
要在QTreeView中显示XML,你需要使用QXmlStreamReader解析XML文件,并将其转换为QStandardItemModel,然后将该模型设置为QTreeView的模型。
以下是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QTreeView>
#include <QStandardItemModel>
#include <QXmlStreamReader>
#include <QFile>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Parse the XML file
QFile file("example.xml");
file.open(QIODevice::ReadOnly);
QXmlStreamReader xml(&file);
// Create a standard item model
QStandardItemModel model;
model.setHorizontalHeaderLabels(QStringList() << "Name" << "Value");
// Add items to the model
QStandardItem *rootItem = model.invisibleRootItem();
while (!xml.atEnd()) {
xml.readNext();
if (xml.isStartElement()) {
QStandardItem *nameItem = new QStandardItem(xml.name().toString());
QStandardItem *valueItem = new QStandardItem(xml.readElementText());
rootItem->appendRow(QList<QStandardItem*>() << nameItem << valueItem);
}
}
// Create a tree view and set the model
QTreeView treeView;
treeView.setModel(&model);
treeView.expandAll();
treeView.resize(400, 300);
treeView.show();
return a.exec();
}
```
在这个例子中,我们使用QXmlStreamReader解析example.xml文件,并将其转换为QStandardItemModel,然后将其设置为QTreeView的模型。每个XML元素都表示为一个名字和一个值的项目,并添加到模型中。最后,我们展开所有的项目,并显示QTreeView。
注意,这只是一个简单的示例,实际上可能需要更复杂的解析逻辑来处理更复杂的XML文件。
阅读全文