0

我的 UI 中有一些项目的QListWidget名称xml_scripts_textbox,当我右键单击 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 ??
}
4

2 回答 2

0

尝试这个:

void MainWindow::edithelp()
{
    QListWidgetItem* item_1 = ui->xml_scripts_textbox->currentItem();
    if (item_1)
        ui->xml_scripts_textbox->editItem(item_1);
}
于 2020-09-15T18:45:43.017 回答
0

你设置项目是可编辑的吗?

item->setFlags(item->flags() | Qt::ItemIsEditable)
于 2020-09-19T15:32:23.430 回答