根据代码逻辑分析,每次点击按钮会触发on_pushButton_clicked()
函数。在该函数中,首先创建了一个QSettings
对象用于读取和写入配置文件。
然后通过调用ReadSetting::connection_readSetting()
函数获取到一个存储歌曲id的列表 m_list
。接着进行一系列判断和操作:
- 如果
m_type==1
,弹出一个提示框,显示本地歌曲不支持收藏。 - 否则,开始处理收藏相关的逻辑。
从你提供的qDebug输出结果来看,第一次点击时没有任何数据被写入或读取。第二次点击时成功读取了一个元素值(447925342),并且判断该元素与当前的 m_id
相等(即相同的歌曲id),然后将其移除。
但是从第三次点击开始,输出结果却显示多个重复的元素值,并且数量随着每次点击递增。这可能是因为每次点击都重新开始写入配置文件,并没有清空之前已存在的数据。
为了解决这个问题,你可以考虑在每次开始写入之前清空配置文件中原有的数据,在调用like_setting->beginWriteArray("shoucang")
之前添加以下代码:
like_setting->remove("shoucang");
这样就能确保每次写入都是从零开始而不会重复累加旧数据了。
内容由零声教学AI助手提供,问题来源于学员提问