QListWidget删除所选项目及其设置QT

时间:2019-03-04 01:09:43

标签: c++ qt

我需要帮助来创建一个用于从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 *无法正确传递

2 个答案:

答案 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

这就是删除所选项目及其设置的方法!并不是我所需要的,但它改变了在保存部分上具有正确命名约定的负担。感谢您的所有支持,您促使我找到了答案!