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

QT文件基本操作

QT文件基本操作

1.概述

这篇文章介绍一些QT操作文件的基础内容

2.创建项目

首先创建一个普通的widget类型项目,然后使用UI 布局页面,实现一个读取文件内容的功能。

2.1.UI布局

在UI界面添加一个QWideget容器,然后在容器中分别添加lineTextpushButton控件。设置QWideget容器水平对齐.

QWideget容器下面添加textEdit控件。
在这里插入图片描述

3.读取文件内容

3.1.读取文件内容

widget.cpp文件中创建一个槽函数和信号,实现点击按钮选择文件,在lineText控件中显示文件路径,textEdit界面显示文件内容.

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QFileDialog>
#include <QFile>
#include <QTextCodec>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
//    创建按钮的槽和信号,实现点击按钮选择文件,在界面显示文件内容
    ui->setupUi(this);
    connect(ui->pushButton, &QPushButton::clicked,[=](){
//        使用文件对话框,选择文件
        QString path = QFileDialog::getOpenFileName(this,"打开文件","/Users/bruce/Documents/WorkSpace/QtSpace/05_Qfile");

//        设置单行文本框显示文件路径
        ui->lineEdit->setText(path);

//        创建文件对象
        QFile file(path);

//        设置操作文件方式
        file.open(QIODevice::ReadOnly);

//        读取文件内容,QFile默认支持文件格式是UTF-8
        QByteArray text = file.readAll();
//        默认utf-8格式在textEdit文本编辑框中显示文件的内容
//        ui->textEdit->setText(text);

//        设置格式
        QTextCodec * codec = QTextCodec::codecForName("gbk");
//        用设置的gbk格式在textEdit文本编辑框中显示文件的内容
        ui->textEdit->setText(codec->toUnicode(text));
//        关闭文件资源
        file.close();



    });
}

Widget::~Widget()
{
    delete ui;
}


实现效果图
在这里插入图片描述

3.2.按行读取

		QByteArray lineText;
//        读取文件不是结尾一直读取文件内容
        while(!file.atEnd())
        {
//            按行读取,返回类型是QByteArray
            lineText += file.readLine();
        }

        ui->textEdit->setText(lineText);
//        关闭文件资源

        file.close();

4.向文件写内容

//        追加内容方式打开文件
       file.open(QIODevice::Append);
//       向文件写入信息
       file.write("追加新信息");
       file.close();

5.获取文件属性

获取文件属性使用QFileInfo类,该类提供了获取文件属性的所有方法,查看帮助文档即可获取需要的属性

下面通过一个实例,展示部分文件属性。

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QFileDialog>
#include <QFile>
#include <QTextCodec>
#include <QFileInfo>
#include <QDebug>
#include <QDateTime>

//        获取文件属性
        QFileInfo fileInfo(path);

        qDebug() << "大小" << fileInfo.size() << "后缀名" << fileInfo.suffix() <<"名称" << fileInfo.fileName() << "路径" << fileInfo.path();

//        默认格式输出日期
        qDebug() << "默认格式输出创建日期" << fileInfo.created();

        qDebug() <<"设置日期格式" << fileInfo.created().toString("yyyy/MM//dd hh:mm:ss");

//        新版本QT中这个方法过时了created, 现在用birthTime方法
        qDebug() << fileInfo.birthTime();
        qDebug() << fileInfo.birthTime().toString("yyyy/MM//dd hh:mm:ss");

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

相关文章:

  • Vue3响应式原理
  • 进程控制(详解)
  • Qt-多元素控件
  • 2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略 完整参考论文(1)
  • [第五空间 2021]pklovecloud 详细题解
  • 要素市场与收入分配
  • BERT的中文问答系统35
  • 猎板科技:PCB 特殊定制领域的卓越引领者
  • 汽车软件开发中的ASPICE合规挑战与Jama Connect解决方案
  • 解决整合Django与Jinja2兼容性的问题
  • django+boostrap实现注册
  • MD5算法的学习
  • 08 —— Webpack打包图片
  • 谷粒商城-消息队列Rabbitmq
  • 从熟练Python到入门学习C++(record 6)
  • AMD64(Advanced Micro Devices) 超微半导体 (x86-64)
  • leecode45.跳跃游戏||
  • rembg AI扣图
  • php:使用Ratchet类实现分布式websocket服务
  • 第三百二十八节 Java网络教程 - Java网络TCP客户端套接字
  • PLC的指令全集1+TIA PORTAL仿真(西门子S7 1200)
  • 浮点数的表示—IEEE754标准
  • c#:winform引入bartender
  • 【大数据技术基础】 课程 第5章 HBase的安装和基础编程 大数据基础编程、实验和案例教程(第2版)
  • Windows之使用putty软件以ssh的方式连接Linux中文显示乱码
  • Django+Nginx+uwsgi网站使用Channels+redis+daphne实现简单的多人在线聊天及消息存储功能