QT
大约 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));
- (1) 实例化编码格式类并指定编码格式,
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;
,修改日期