欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

文件操作 QT 学习笔记

最编程 2024-10-02 07:25:09
...

你千万不要跟任何人谈起任何事。你只要一谈起,就会想念起每一个人来。


在ui界面添加一个LineEdit(lEt)、QPushButton(btn)、QWidget

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QFileDialog>
#include <QTextCodec>
#include <QDebug>
#include <QFileInfo>
#include <QDateTime>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //点击选取按钮弹出,文件对话框
    connect(ui->btn,&QPushButton::clicked,[=]()
    {
        QString path=QFileDialog::getOpenFileName(this,tr("Open File"),"D://");//获取文件路径
        ui->lEt->setText(path);//将文件路径保存到linneEdit中

        QFile file(path);//
        QTextCodec *codec=QTextCodec::codecForName("gbk");//设置编码格式,解决gbk格式打开后乱码的问题
        file.open(QIODevice::ReadOnly);//以只读的方式打开文件
        // QByteArray array=file.readAll();全部读取
        QByteArray array;
        while(!file.atEnd())
        {
        array+=file.readLine();//逐行读取
        }
        ui->tEt->setText(array);
        file.close();
        file.open(QIODevice::Append);//打开时选择以追加的方式写
        file.write("风在很远的地方");//在文件中写
        file.close();
        //QFileInfo文件信息类
        QFileInfo info(path);
        qDebug()<<"大小:"<<info.size()<<"后缀名:"<<info.suffix()<<"文件名称:"<<info.fileName()<<"文件路径"<<info.filePath();
        qDebug()<<"创建日期:"<<info.birthTime().toString("yyyy/MM/dd hh:mm:ss");//Qt版本问题 No member named 'created' in 'QFileInfo',使用birthTime()函数
        qDebug()<<"最后修改日期:"<<info.lastModified().toString("yyyy/MM/dd hh:mm:ss");
    });
}

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

.pro文件中

添加greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat,解决QT6中QTextcodec头文件找不到的问题,具体请参考QT6中QTextcodec头文件找不到_qt6 qtextcodec 被替换-****博客

ui界面

推荐阅读