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

相关推荐
繁星蓝雨18 小时前
Qt优雅的组织项目结构三(使用CMakeLists进行模块化配置)——————附带详细示例代码
开发语言·数据库·qt
kupeThinkPoem19 小时前
Qt中setSpacing函数介绍
qt
weixin_4595489020 小时前
QT+Echarts初始示例
qt·echarts
dllmayday1 天前
Qt/QML + C++ 双向数据绑定(MVVM 模式的几种常用方法(ChatGPT)
开发语言·c++·qt
kupeThinkPoem1 天前
Qt中setSpacing与setContentsMargins的区别
qt
搞全栈小苏1 天前
LVGL与Qt深度对比分析:轻量与全能的技术博弈
qt·lvgl
程序员-King.1 天前
【Qt开源项目】— ModbusScope-day 1
qt·开源项目·modbus·modbusscope
mengzhi啊1 天前
Qt自绘制动态字体,模糊的,毛茸茸的fuzzy。
开发语言·qt
长安第一美人1 天前
整车控制器标定软件介绍 || 汽车标定协议CPP
开发语言·qt
宠..1 天前
获取输入内容
开发语言·c++·qt