如何使用自定义上下文菜单编辑 QListwidgetItem?

How to edit a QListwidgetItem by using custom context menu?

我有一个名为 xml_scripts_textboxQListWidget,在我的 UI 中有一些项目,当我右键单击我的 qlistwidget 中的一个项目时,会出现一个自定义上下文菜单,其中一个这个上下文菜单的选项是 "Edit the List item",所以当它被点击时,我希望 qlistwidget 中的特定项目可以编辑一次,

我该怎么做?

到目前为止我试过的代码是

上下文菜单代码

void MainWindow::on_xml_scripts_textbox_customContextMenuRequested(const QPoint& pos)
{
    QMenu* rMenu = new QMenu(this);
    QAction* edit = new QAction(tr("Edit the List item"), this);

    rMenu->addAction(edit);
    connect(edit, SIGNAL(triggered()), this, SLOT(edithelp()));
    rMenu->exec(cursor().pos());

}

edithelp() 的代码,使列表项可编辑的槽函数

void MainWindow::edithelp()
{
    QListWidgetItem* item_1 = ui->xml_scripts_textbox->takeItem(ui->xml_scripts_textbox->currentRow());
    item_1->setFlags(Qt::ItemIsEditable);  // still not getting editable ?? why ??
}

试试这个:

void MainWindow::edithelp()
{
    QListWidgetItem* item_1 = ui->xml_scripts_textbox->currentItem();
    if (item_1)
        ui->xml_scripts_textbox->editItem(item_1);
}

您是否将项目设置为可编辑?

item->setFlags(item->flags() | Qt::ItemIsEditable)