如何使用自定义上下文菜单编辑 QListwidgetItem?
How to edit a QListwidgetItem by using custom context menu?
我有一个名为 xml_scripts_textbox
的 QListWidget
,在我的 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)
我有一个名为 xml_scripts_textbox
的 QListWidget
,在我的 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)