当前位置: 首页 > article >正文

qt 读写文本、xml文件

写txt文件

    QString fileName = ui->lineEdit->text();
    QString fileContent = ui->textEdit->toPlainText();

    qDebug()<<"test:"<<fileContent;
    QFile file(fileName);
    if(!file.open(QFile::WriteOnly|QFile::Text))
    {
        qDebug()<<fileName<<"打开失败!"<<endl;
        return;
    }
    QTextStream stream(&file);

    stream<<fileContent;
    file.close();

读txt 文件

    QString fileName = ui->lineEdit->text();
    QFile file(fileName);
    if(!file.open(QFile::ReadOnly))
    {
        qDebug()<<fileName<<"打开失败!"<<endl;
        return;
    }
    QTextStream stream(&file);
    QString str = stream.readAll();
    file.close();

    ui->textEdit->setText(str);

写xml文件

 QString fileName = ui->lineEdit->text();
    if(fileName.isNull()||fileName.isEmpty())
    {
        QMessageBox::information(this,"提示","没有文件名");
        return;
    }

    QFile file(fileName);
    if(!file.open(QFile::Text|QFile::WriteOnly|QFile::Truncate))
    {
        qDebug()<<"文件打开失败!"<<endl;
        return;
    }

     //写XML文件
    QXmlStreamWriter writer(&file);
    writer.setCodec("utf-8");
    writer.setAutoFormatting(true);
    writer.writeStartDocument();
    writer.writeStartElement("person");
    writer.writeStartElement("student");
    QXmlStreamAttributes attribute;
    attribute.append("class","class_one");
    writer.writeAttributes(attribute);
    writer.writeTextElement("name","xiaoli");
    writer.writeTextElement("age","10");
    writer.writeEndElement();
    writer.writeEndElement();
    file.close();

读xml 文件

 QFile file1(fileName);
    if(!file1.open(QFile::ReadOnly))
    {
        qDebug()<<"打开文件失败:"<<fileName<<endl;
    }

    //解析xml文件并写到label控件中
    ui->label_3->setText("");//读文件前先清空显示控件
    QXmlStreamReader reader(&file1);
    while(!reader.atEnd())
    {
        if(reader.isStartElement())
        {
            if(reader.isComment())
                qDebug() << "comment";
            else if(reader.name()=="name")
            {
                QString str = ui->label_3->text();
                str = str+" "+reader.readElementText();
                ui->label_3->setText(str);
            }
            else if(reader.name()=="age")
            {
                QString str = ui->label_3->text();
                str = str+" "+reader.readElementText();
                ui->label_3->setText(str);
            }

        }
        reader.readNext();
    }

    file1.close();


http://www.kler.cn/a/411767.html

相关文章:

  • Ubuntu下用Docker部署群晖系统---Virtual DSM --zerotier实现连接
  • Kubeadm 安装 Kubernetes 高可用集群 v1.30.0
  • PICO 获取设备号 SN码
  • 基于springboot的县市级土地使用监控系统的设计与实现
  • 周志华深度森林deep forest(deep-forest)最新可安装教程,仅需在pycharm中完成,超简单安装教程
  • 嵌入式系统与单片机工作原理详解
  • 0 基础 入门简单 linux操作 上篇 利用apt命令装13 linux搭建自己的服务器
  • 【WEB开发.js】getElementById :通过元素id属性获取HTML元素
  • SpringMVC框架---SpringMVC概述、入门案例、常用注解
  • Flink Transformation-转换算子
  • C++设计模式之组合模式的基本结构
  • 【多线程-第一天-多线程的技术方案-pthread演示 Objective-C语言】
  • React中事件处理和合成事件:理解与使用
  • [RabbitMQ] 保证消息可靠性的三大机制------消息确认,持久化,发送方确认
  • 写个添加球队和展示球队的功能--laravel与inertia
  • 多线程
  • 【含开题报告+文档+PPT+源码】基于Spring Boot+Vue的在线学习平台的设计与实现
  • 多级反馈队列调度算法
  • kafka生产者和消费者命令的使用
  • 深入解析下oracle date底层存储方式
  • 利用Java爬虫获取1688商品类目:技术解析与代码示例
  • python操作Elasticsearch
  • PHP md5函数 生成的字符串是多少位的
  • 一个开源轻量级的服务器资源监控平台,支持告警推送
  • 应用商店双弹窗“APP在向用户申请权限时未同步告知用户申请此权限的理由”驳回uni-app应用上线的解决方法
  • 从零开始学GeoServer源码(二)添加支持arcgis切片功能