⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlstreamwriter.cpp

📁 QT4 gui programming的随书光盘
💻 CPP
字号:
#include <QtGui>#include <QtXml>#include <iostream>void populateTree(QTreeWidget *treeWidget){    QStringList labels;    labels << QObject::tr("Terms") << QObject::tr("Pages");    treeWidget->setHeaderLabels(labels);    treeWidget->header()->setResizeMode(QHeaderView::Stretch);    treeWidget->setWindowTitle(QObject::tr("XML Stream Writer"));    treeWidget->show();    (void) new QTreeWidgetItem(treeWidget,            QStringList() << "sidebearings" << "10, 34-35, 307-308");    QTreeWidgetItem *subterm = new QTreeWidgetItem(treeWidget,            QStringList() << "subtraction");    (void) new QTreeWidgetItem(subterm,            QStringList() << "of pictures" << "115, 244");    (void) new QTreeWidgetItem(subterm,            QStringList() << "of vectors" << "9");}void writeIndexEntry(QXmlStreamWriter *xmlWriter, QTreeWidgetItem *item){    xmlWriter->writeStartElement("entry");    xmlWriter->writeAttribute("term", item->text(0));    QString pageString = item->text(1);    if (!pageString.isEmpty()) {        QStringList pages = pageString.split(", ");        foreach (QString page, pages)            xmlWriter->writeTextElement("page", page);    }    for (int i = 0; i < item->childCount(); ++i)        writeIndexEntry(xmlWriter, item->child(i));    xmlWriter->writeEndElement();}bool writeXml(const QString &fileName, QTreeWidget *treeWidget){    QFile file(fileName);    if (!file.open(QFile::WriteOnly | QFile::Text)) {        std::cerr << "Error: Cannot write file "                  << qPrintable(fileName) << ": "                  << qPrintable(file.errorString()) << std::endl;        return false;    }    QXmlStreamWriter xmlWriter(&file);    xmlWriter.setAutoFormatting(true);    xmlWriter.writeStartDocument();    xmlWriter.writeStartElement("bookindex");    for (int i = 0; i < treeWidget->topLevelItemCount(); ++i)        writeIndexEntry(&xmlWriter, treeWidget->topLevelItem(i));    xmlWriter.writeEndDocument();    file.close();    if (file.error()) {        std::cerr << "Error: Cannot write file "                  << qPrintable(fileName) << ": "                  << qPrintable(file.errorString()) << std::endl;        return false;    }    return true;}int main(int argc, char *argv[]){    QApplication app(argc, argv);    QTreeWidget treeWidget;    populateTree(&treeWidget);    writeXml("out1.xml", &treeWidget);    return app.exec();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -