利用QT的QtreeWidget导入显示和修改XML文件并导出

最近利用QT编写了一个XML文件的导入显示和内容修改程序,配合工作的某些功能实现。在这里插入图片描述

根据上方的line_edit输入框体输入,写入treewidget控件,同时可导出XML文件。

在写入文件操作中的代码主要通过递归实现

int itemcount = item->childCount();
    if(itemcount!=0)
    {
        for (int i = 0;i<itemcount;i++)
        {
            QTreeWidgetItem *childItem = item->child(i);
            ReadTreeWidget(childItem,element,doc);
        }
    }  

读取文件的遍历采用以下函数实现

void Widget::listDom(QDomElement& docElem, QTreeWidgetItem * pItem)
{
    QDomNode node = docElem.firstChild();
    if(node.toElement().isNull())
    {
        pItem->setText (1, docElem.text());
    }
    while(!node.isNull())
    {
        QDomElement element = node.toElement(); // try to convert the node to an element.
        if( !element.isNull() )
        {
            QTreeWidgetItem *item;
            if( pItem )
            {
                item = new QTreeWidgetItem(pItem);
            }
            else
            {
                item = new QTreeWidgetItem(ui->treeWidget);
            }
            item->setText(0, element.tagName());
            listDom(element, item);
            if( pItem )
            {
                pItem->addChild(item);
            }
            else
            {
                ui->treeWidget->addTopLevelItem(item);
            }
        }

        node = node.nextSibling();
    }
    return;
}

最终,功能集成,实现界面设计。

具体代码地址:https://download.csdn.net/download/frank90_z/15136503

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
QML中可以通过Qt Quick XML模块来完成XML文件导入导出修改。下面是一个简单的示例代码,演示了如何在QML中使用Qt Quick XML模块操作XML文件。 首先,在QML文件的头部添加以下代码,导入Qt Quick XML模块: ``` import QtQuick.XmlListModel 2.0 ``` 然后,使用XmlListModel组件来加载XML文件,并将其显示在ListView中: ``` XmlListModel { id: xmlModel source: "file.xml" query: "/root/item" XmlRole { name: "title"; query: "title/string()" } XmlRole { name: "description"; query: "description/string()" } } ListView { model: xmlModel delegate: Text { text: title } } ``` 在以上代码中,XmlListModel组件通过source属性指定要加载的XML文件,query属性指定要查询的节点路径,XmlRole定义了节点中要显示的数据项。 接下来,可以在QML中使用JavaScript来修改XML文件。以下是一个示例代码,演示了如何添加一个新的节点: ``` XmlListModel { id: xmlModel source: "file.xml" query: "/root/item" XmlRole { name: "title"; query: "title/string()" } XmlRole { name: "description"; query: "description/string()" } } function addItem(title, description) { var newElement = xmlModel.createObject({"title": title, "description": description}) xmlModel.append(newElement) xmlModel.save() } Button { text: "Add Item" onClicked: addItem("New Item", "New Description") } ``` 在以上代码中,addItem函数使用createObject方法创建一个新的XML节点,并将其添加到XmlListModel中。最后,调用save方法将修改保存到XML文件中。 以上就是在QML中导入导出修改XML文件的基本方法。需要注意的是,Qt Quick XML模块的使用需要在Qt项目中添加xml模块的依赖。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值