我需要帮助来创建一个用于从QListWidget删除项目的函数。我需要复制列表中最后一项的名称,从.ini中删除设置,然后从QListWidget中删除。到目前为止,我所能找到的就是如何使用QList删除所选项目。
我的添加函数如下:
void Edge::on_slotNew_pressed()
{
int i = ui->slotList->count();
i++;
QString slotNumber = "Slot" + QString::number(i);
ui->slotList->addItem(slotNumber);
QSettings settings("config.ini",QSettings::IniFormat);
qDebug() << settings.fileName();
settings.beginGroup(slotNumber);
settings.setValue("slotSizeW", m_prefs.slotSizeW);
settings.setValue("slotSizeH", m_prefs.slotSizeH);
settings.setValue("slotPosX", m_prefs.slotPosX);
settings.setValue("slotPosY", m_prefs.slotPosY);
settings.setValue("slotMax", m_prefs.slotMax);
settings.setValue("slotPriority", m_prefs.slotPriority);
settings.setValue("slotBorderless", m_prefs.slotBorderless);
settings.setValue("slotHotkey", m_prefs.slotHotkey);
settings.endGroup();
qDebug() << slotNumber;
}
**编辑:**更新了删除功能
目前,我的删除功能看起来像
void Edge::on_slotDelete_clicked()
{
QSettings settings("slots.ini",QSettings::IniFormat);
int i = ui->slotList->count();
QString slotNumber = "Slot" + QString::number(i);
QList<QListWidgetItem*> items = ui->slotList->selectedItems();
foreach(QListWidgetItem* item, items)
{
ui->slotList->removeItemWidget(item);
delete item;
}
settings.beginGroup(slotNumber);
settings.remove("");
settings.endGroup();
qDebug() << settings.fileName();
}
我放弃并忘记更新配置名称,因此删除有效,我可能需要更好的命名约定,因为必须将其作为QString传递,QListWidgetItem *无法正确传递
答案 0 :(得分:0)
要删除网上论坛及其内容通话:
settings.beginGroup(item->getSlotNumber()); // please use here the correct method to get the SlotNumber
settings.remove(""); //removes the group, and all it keys
settings.endGroup();
要获取ui-> slotList的姓氏,请使用count()方法或last()方法来获取slotItems的最后一项:
ui->slotList->item(ui->slotList->count() - 1); // or
ui->slotList->last()
答案 1 :(得分:0)
最终答案是使用
x
这就是删除所选项目及其设置的方法!并不是我所需要的,但它改变了在保存部分上具有正确命名约定的负担。感谢您的所有支持,您促使我找到了答案!