山南程咬金 2019-08-14 16:09 采纳率: 0%
浏览 422

QT 写的读写配置的程序,写INI文件重启后还原, 用VI打开后重启就不还原

#include "config.h"
#include
#include

Config::Config(QString qstrfilename)
{
if (qstrfilename.isEmpty())
{
m_qstrFileName ="Config.ini"; //QCoreApplication::applicationDirPath() + "/Config.ini";
}
else
{
m_qstrFileName = qstrfilename;
}

m_psetting = new QSettings(m_qstrFileName, QSettings::IniFormat);
qDebug() << m_qstrFileName;

}
Config::~Config()
{
delete m_psetting;
m_psetting = 0;
}
void Config::Set(QString qstrnodename,QString qstrkeyname,QVariant qvarvalue)
{
m_psetting->setValue(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname), qvarvalue);
m_psetting->sync();
// sync();

qDebug() << QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname)+ qvarvalue.toString();
}

QVariant Config::Get(QString qstrnodename,QString qstrkeyname)
{
QVariant qvar = m_psetting->value(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname));
return qvar;
}

用的是一个大神写的config.cpp ,

主函数 调用 Config().Set("COMMON","IP",CGlobal::IP);
Config().Set("COMMON","Port",CGlobal::Port);
Config().Set("COMMON","IP1",CGlobal::IP1);
Config().Set("COMMON","Port1",CGlobal::Port1);

    写应该是写进去了。因为把程序关闭后 用VI打开  ini文件 是可以看到已经修改了,如果不用VI打开重启后就又还原了。用VI打开后 再重启 就不会还原。现象就是像没保存一样。各位大神有没有遇见过的 指导下
  • 写回答

1条回答 默认 最新

  • J4cks0n 2019-08-14 17:31
    关注

    有这种情况? 你程序写入完成后用ls -al查看下ini目录下的状况,有字节数重启后不会还原的。怎么搞得这么玄乎:)

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?