ZBLOG

void CustomItem::on_pushButton_clicked()//收藏 { m_list=ReadSetting::connection_readSetting(); qDebug()

根据你提供的代码,出现问题的原因可能是以下两点:

  1. 第一个问题是在处理有重复情况时没有正确更新索引变量x。在循环中,如果找到了重复的m_id,需要将x设为当前索引i+1,以便在后面正确写入数组索引。
if(m_list.size()!=0){
    for( int i=0;i<m_list.size();i++){
        if(m_id==m_list[i]){
            m++;
            x = i + 1; // 更新x为当前索引+1
        }
    }
    // ...
}
  1. 第二个问题可能与QSettings中的操作有关。当从中间位置删除元素时,它们不会自动调整数组索引。因此,在移除元素后,需要手动重新设置每个条目的值。
else if(m!=0){
    qDebug()<<"有重复"<<x;
    like_setting->beginWriteArray("shoucang");
    like_setting->setArrayIndex(x);
    like_setting->remove("id");
    like_setting->remove("singer");
    
    // 手动调整数组索引
    for (int i = x + 1; i < m_list.size(); ++i) {
        like_setting->setArrayIndex(i);
        QString id = like_setting->value("id").toString();
        QString singer = like_setting->value("singer").toString();
        
        like_setting->setArrayIndex(i - 1);
        like_setting->setValue("id", id);
        like_setting->setValue("singer", singer);
    }
    
    like_setting->endArray();
    ui->pushButton->setIcon(QIcon(":/new/prefix1/image/buxihuan.png"));
    x=0;
}

通过上述修改,应该能够解决从收藏第三首歌开始索引不正确的问题。但请注意,在修改QSettings时可能需要更多的调整,以确保正确的数组操作和数据存储。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11392

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?