QT中如何读写ini配置文件
本文首发于「3D视觉工坊」知识星球。
如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢?
方法:读取ini格式的配置文件,实现路径的写入与读取。
第一步:界面构造函数中,初始化一个Config.ini文件
//初始化一个.ini配置文件//qApp是QT系统自带的,可以直接使用
QString iniFilePath=qApp->applicationDirPath()+"/Config.ini";
//如果不存在Config.ini,便生成一个Config.ini。如果已经存在了,则略过。
if(!QFile::exists(iniFilePath))
{QSettings configIniWrite(iniFilePath,QSettings::IniFormat);configIniWrite.beginGroup("calib_data_path");configIniWrite.setValue("calib_data_path","FA0180090134.xml");configIniWrite.endGroup();configIniWrite.beginGroup("robot_pose_file");configIniWrite.setValue("robot_pose_file_path","robot_pose_file.txt");configIniWrite.endGroup();
}
第二步:定义一个保存Config文件的函数
void saveConfig(const QString& group,const QString& name, const QVariant& var)
{QString iniFilePath = qApp->applicationDirPath() + "/Config.ini";if (QFile::exists(iniFilePath)){QSettings configIniWrite(iniFilePath,QSettings::IniFormat);configIniWrite.beginGroup(group);configIniWrite.setValue(name,var);configIniWrite.endGroup();}
}
第三步:设置路径
Demo1:
//设置相机标定文件路径
void CalibrationForm::btnLoadCamParaPath_clicked()
{QFileDialog dialog(this,tr("Select calib data file"));dialog.setAcceptMode(QFileDialog::AcceptOpen);dialog.setFileMode(QFileDialog::ExistingFile);static bool firstDialog = true;if (firstDialog){firstDialog = false;const QStringList fileLocations = QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);dialog.setDirectory(fileLocations.isEmpty() ? QDir::currentPath():fileLocations.last());}dialog.setNameFilter(tr("FA0180090134(*.xml)"));if (dialog.exec()==QDialog::Accepted){//获得文件夹路径+文件名_campara_path = dialog.selectedFiles().first();ui->lineEditCamParaPath->setText(_campara_path); //此处是在lineEdit窗口显示路径名+文件名saveConfig("calib_data_path","calib_data_path",_campara_path);}
}
demo2:
//设置手眼标定时的机械臂运动轨迹路径
void CalibrationForm::btnLoadRobotPara_clicked()
{QFileDialog dialog(this,tr("Select robot pose file"));dialog.setAcceptMode(QFileDialog::AcceptOpen);dialog.setFileMode(QFileDialog::ExistingFile);static bool first_Dialog = true;if (first_Dialog){first_Dialog = false;const QStringList fileLocations =
QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);dialog.setDirectory(fileLocations.isEmpty()?
QDir::currentPath():fileLocations.last());}dialog.setNameFilter(tr("robot_pose_file(*.txt)"));if (dialog.exec()==QDialog::Accepted){_robot_pose_path = dialog.selectedFiles().first();ui->lineEditRobotPath->setText(_robot_pose_path);saveConfig("robot_pose_file","robot_pose_file_path",_robot_pose_path);}
}
由于ini文件不可在星球中上传,此处用txt形式的截图作为附件,见图2.
以上,仅仅是项目中的一个小知识点,总结如上,如有不到之处,还请多多指正。
QT中如何读写ini配置文件相关推荐
- Qt使用QSettings读写ini文件
Qt使用QSettings读写ini文件 文章目录 Qt使用QSettings读写ini文件 1. 前言 2. 示例及代码 1. 前言 在项目中有的配置不希望在界面中展示,只提供给实施运维人员来配置, ...
- python读取配置文件 分段_Python3读写ini配置文件的示例
ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑. 配置文件的主要功能就是存储一批变量和变量值,在ini文件 ...
- C# 读写ini配置文件demo
INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若 ...
- C/C++ ini配置文件的格式及如何读写ini配置文件
一.ini配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序 ...
- C# 读写ini配置文件
C# 读写ini配置文件 一.简述 记--c#通过调用系统api接口进行简单读写ini配置文件. 例子打包:外链:https://wwa.lanzoui.com/b0c9nm3pa 密码:8maq ...
- QT中读写.ini配置文件的操作
ini 文件(即Initialization file):这种类型的文件中通常存放的是一个程序的初始化信息.ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个K ...
- 【Y忍冬草】QT读写ini配置文件
文章目录 1.ini文件格式 2. ini配置文件的读写.删除 3. 结果 4.源码下载 在我们进行软件系统开始时,对于一些参数我们需要进行配置,这时我们就会用ini类型的配置文件.其实我们在很多软 ...
- C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()
转自:http://hi.baidu.com/andywangcn/blog/item/10ba730f48160eeb37d122e9.html 配置文件中经常用到ini文件,在VC中其函数分别为: ...
- 【转载】C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()
配置文件中经常用到ini文件,在VC中其函数分别为: #include <Windows.h> //wince,WMobile.ppc不支持这几个函数 写入.ini文件:bool Writ ...
最新文章
- LeetCode简单题之检查数组是否经排序和轮转得到
- Levenshtein 相似度算法——Levenshtein(编辑距离)
- 数据结构与算法 | 顺序表
- 聊聊Unity项目管理的那些事:Git-flow和Unity
- 【渝粤教育】国家开放大学2018年春季 7403-21T素质与思想政治教育 参考试题
- 信息学奥赛C++语言:由大到小输出1~100的整数
- 详解Python中re.sub
- 锁屏后重新登录程序无响应问题分析
- 人民日报海外版总编辑詹国枢谈新闻写作技巧:五句话妙手著文章
- 电脑该如何选择(小仙女篇)
- 密码管理器(PM)安全机制和问题研究
- MI5s安装LineageOS 16
- (2020)JAVA中级篇(集合类)
- 好的文章中插画必不可少,插画的作用是什么呢?带你了解插画。
- 诺贝丽斯宣布成功完成收购爱励铝业
- Linux常用指令学习(篇一):文件处理指令
- Mongodb关于读取的问题(Read Concern)和Write Concern
- java稿件管理系统外文翻译,新闻稿件管理系统毕业论文
- 中国互联网金融举报信息平台将“代币发行融资”列入举报范围
- python爬虫 携程 机票 sign transactionID