QT文件操作

时间记录:2024/1/10

文件读写的一些注意点,读文件时文件名可以是相对路径,但是向文件写内容时文件名需要是绝对路径

1.文件对话框

QFileDialog

静态方法getOpenFileName弹出文件选择框,选择要打开的文件,返回打开文件的路径+文件名

2.文件操作

QFile类

常用属性:

(1)setFileName:设置要打开的文件路径+文件名

(2)open:打开文件,传入参数,打开方式只读、只写、读写、追加

(3)readxxx:读取文件内容,返回QByteArray二进制内容

(4)write:向文件中写入内容

(5)close:关闭文件并保存

3.中文编码问题解决

QTextStream/QTextCodec类

(1)QTextStream的setCodec方法指定编码

(2)QTextCodec类的静态方法codecForName来指定编码,toUnicode方法将QByteArray数据以指定编码转为QString数据

(3)写入时使用flush方法将缓存中的数据刷新进文件保存

4.文件夹操作

QDir类

常用属性

(1)setPath设置文件夹路径

(2)exists方法判断路径是否物理存在

(3)mkdir方法创建文件夹

5.设置当前项目路径为应用程序路径

cpp 复制代码
QDir::setCurrent(QApplication::applicationDirPath());

6.获取随机数

(1)原始方法,qsrand和qrand方法结合获取

cpp 复制代码
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
int randNum = qrand()%9;//生成0-9之间的随机数

(2)QRandomGenerator类

cpp 复制代码
QRandomGenerator::global()->bounded(10);

7.获取当前时间字符串

QDateTime/QDate/Qtime

常用属性

(1)静态方法currentDateTime获取当前日期时间

(2)toString方法将类格式化为字符串"yyyy/MM/dd HH:mm:ss"

8.读写ini配置文件

QSettings类

8.1 ini文件格式介绍

键=值

8.2 读写示例:

cpp 复制代码
    conf = new QSettings("./conf.ini",QSettings::IniFormat,this);//创建对象

    conf->beginGroup("SQL");//设置组
    conf->setValue("username","admin");//写内容
    conf->setValue("password","123456");
    conf->endGroup();

    conf->setValue("QT/username","123");//直接向组写内容
    conf->setValue("QT/password","123");

    qDebug() << conf->value("QT/username").toString();//获取值

    conf->beginGroup("SQL");
    qDebug() << conf->value("username").toString();
    conf->endGroup();

    conf->sync();//同步数据到ini文件

8.3 结果

9.QString字符串转QByteArray方法的介绍

(1)toUtf8:以UTF-8编码格式转换汉字

(2)toLatin1:以ASCII编码转换汉字

(3)toLocal8Bit:以本地计算机操作系统的编码格式转换汉字,一般为GBK

相关推荐
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner1 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz6 天前
QML Hello World 入门示例
qt
xcyxiner9 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner10 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner10 天前
DicomViewer (添加模型类)3
qt
xcyxiner11 天前
DicomViewer (目录调整) 2
qt
xcyxiner11 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
桥田智能13 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
森G13 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt