本文首发于「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配置文件相关推荐

  1. Qt使用QSettings读写ini文件

    Qt使用QSettings读写ini文件 文章目录 Qt使用QSettings读写ini文件 1. 前言 2. 示例及代码 1. 前言 在项目中有的配置不希望在界面中展示,只提供给实施运维人员来配置, ...

  2. python读取配置文件 分段_Python3读写ini配置文件的示例

    ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑. 配置文件的主要功能就是存储一批变量和变量值,在ini文件 ...

  3. C# 读写ini配置文件demo

    INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若 ...

  4. C/C++ ini配置文件的格式及如何读写ini配置文件

    一.ini配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序 ...

  5. C# 读写ini配置文件

     C# 读写ini配置文件 一.简述  记--c#通过调用系统api接口进行简单读写ini配置文件. 例子打包:外链:https://wwa.lanzoui.com/b0c9nm3pa 密码:8maq ...

  6. QT中读写.ini配置文件的操作

    ini 文件(即Initialization file):这种类型的文件中通常存放的是一个程序的初始化信息.ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个K ...

  7. 【Y忍冬草】QT读写ini配置文件

    文章目录 1.ini文件格式 2. ini配置文件的读写.删除 3. 结果 4.源码下载  在我们进行软件系统开始时,对于一些参数我们需要进行配置,这时我们就会用ini类型的配置文件.其实我们在很多软 ...

  8. C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()

    转自:http://hi.baidu.com/andywangcn/blog/item/10ba730f48160eeb37d122e9.html 配置文件中经常用到ini文件,在VC中其函数分别为: ...

  9. 【转载】C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()

    配置文件中经常用到ini文件,在VC中其函数分别为: #include <Windows.h> //wince,WMobile.ppc不支持这几个函数 写入.ini文件:bool Writ ...

最新文章

  1. LeetCode简单题之检查数组是否经排序和轮转得到
  2. Levenshtein 相似度算法——Levenshtein(编辑距离)
  3. 数据结构与算法 | 顺序表
  4. 聊聊Unity项目管理的那些事:Git-flow和Unity
  5. 【渝粤教育】国家开放大学2018年春季 7403-21T素质与思想政治教育 参考试题
  6. 信息学奥赛C++语言:由大到小输出1~100的整数
  7. 详解Python中re.sub
  8. 锁屏后重新登录程序无响应问题分析
  9. 人民日报海外版总编辑詹国枢谈新闻写作技巧:五句话妙手著文章
  10. 电脑该如何选择(小仙女篇)
  11. 密码管理器(PM)安全机制和问题研究
  12. MI5s安装LineageOS 16
  13. (2020)JAVA中级篇(集合类)
  14. 好的文章中插画必不可少,插画的作用是什么呢?带你了解插画。
  15. 诺贝丽斯宣布成功完成收购爱励铝业
  16. Linux常用指令学习(篇一):文件处理指令
  17. Mongodb关于读取的问题(Read Concern)和Write Concern
  18. java稿件管理系统外文翻译,新闻稿件管理系统毕业论文
  19. 中国互联网金融举报信息平台将“代币发行融资”列入举报范围
  20. python爬虫 携程 机票 sign transactionID

热门文章

  1. 数据告诉你,哪个省才是高考地狱模式?第一名,你想不到!
  2. 为了追求更快,CPU、内存、I/O都做了哪些努力?
  3. 36 张图梳理 Intellij IDEA 常用设置
  4. 最常用的20个Git命令与示例,你都会了么?
  5. JAVA面试解析(有赞二面)
  6. Jira停售本地版,已购企业最大化降低损失的几种方法
  7. 微信小程序开源项目库汇总-持续更新
  8. 技术/领域专家有什么要求?
  9. solidwork2019/2020安装后出现无法获得许可证
  10. Robosense 32线lidar ——SLAM