QSettings childGroups()排序

项目中需要用到ini文件,并且节是逐个递增的(节形式:History1、History2)。处理方式为获取到childGroups(),然后取最后一个,再对其进行++
下面展示一些 内联代码片

    //获取最新记录编号
    QStringList listAllKeys = m_pHistorySettings->childGroups();
    int iID = 0;
    if(listAllKeys.count() > 0)
    {
        QStringList strList = listAllKeys.last().split("History"); //获取最新记录的编号
        if(strList.count() == 2)
            iID = strList.at(1).toInt();
    }
    iID++;

但是使用过程中发现,iID到达10后,就无法递增了。调试后,发现listAllKeys并不是按写入文件中的顺序返回的。最终处理方案,对listAllKeys进行排序即可。
下面展示一些 内联代码片

        //对键进行排序,默认返回为无序
        std::sort(listAllKeys.begin(), listAllKeys.end(), [](const QString& s1, const QString& s2)
                  {
                      return s1.split("History").at(1).toInt()<s2.split("History").at(1).toInt();
                  });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值