跳至主要內容

QT

LincZero大约 2 分钟

QT

目录

交互类

QFile 文件读写操作

QFile 文件类

#include <QFile>					// 头文件

// (1) 实例化部分 - 打开
if(!path.isEmpty()){				// 最好先判断下路径是否正确,也可配合QFileDialog获取路径
    QFile file(path);				// 实例化对象,参数为QString
    file.open(QIODevice::ReadOnly);	// 设置打开方式,只读,默认格式是utf-8(其他媒体值查手册`Append`追加)
}

// (2) 读取数据
QByteArray array = file.readAll();	// 读取数据 - 全部读入,返回QByteArray字节集
QByteArray array = file.readLine();	// 读取数据 - 按行读入,可配合循环使用while(!file.atEnd()){}

// (3) 读写数据
ui->textEdit->setText(array);
file.write("It is a append words.");// 可写时

// (4) 关闭
file.close();						// 手动关闭文件对象

配合QFileDialog获取文件名

#include <QFileDialog>											// 头文件 - 文件对话框
#include <QFile>												// 头文件 - 文件类

QString path = QFileDialog::getOpenFileName(this);				// 获取路径文件名

QFile file(path);												// 打开文件

补充:getOpenFileName()函数

QString QFileDialog::getOpenFileName(
    QWidget * parent = 0,					// 定义标准文件对话框的父窗口
    const QString & caption = QString(),	// 定义标准文件对话框的标题名
    const QString & dir = QString(),		// 默认路径
    const QString & filter = QString(),		// 过滤文件类型,多种过滤器之间用;;隔开
    QString * selectedFilter = 0,			// 用户选择过滤器通过此参数返回
    Options options = 0
)
QString path = QFileDialog::getOpenFileName(this, "打开文件", "默认路径", "(*.txt)");	// 举例
QStringList pathList = QFileDialog::getOpenFileNames(this);							// 批量获取路径文件名

QTextCodec 编码格式类

  • 编码问题
    • 默认使用utf-8,也可手动指定
    • 一般需要在打开文件前查看文件的编码格式信息
  • 头文件
    • #include <QTextCodec>
  • 使用
    • (1) 实例化编码格式类并指定编码格式,QTextCodec *codec = QTextCodec::codecForName("gbk");
    • (2) 编码格式转换,例如ui->textEidt->setText(codec->toUnicode(array));

QTextStream 文本流

读写文件的方法通常由两种:传统的QFile类方法、更为方便的QTextStream类方法

为读写文本提供了一个方便的接口

详见《Qt5开发及实例》P240

QFileInfo 文件信息读取

  • 头文件
    • #include <QFileInfo>
  • 使用
    • 初始化:QFileInfo infor(path);
    • 使用示例
      • info.size(),大小
      • info.suffix(),后缀名
  • 常用公有接口(具体查手册)
    • bool isDir() const;,是否目录
    • bool isExecutable() const;,是否可执行
    • bool isFile() const;,是否文件
    • bool isHidden() const;,是否隐藏
    • bool isReadable() const;,是否可读
    • QString fileName() const;,文件名
    • QString filepath() const;,文件路径
    • QString path() const;,路径
    • QString suffix() const;,后缀名
    • QDateTime created() const;,创建日期
    • QDateTime lastModified() const;,修改日期