我想知道当我右键单击表项时如何打开弹出菜单.在弹出菜单中,应该给出一些添加和删除等操作,这将创建一个新行或删除所选行.
我是Qt世界的新手,所以如果有人能给我详细信息(如果可能的话还有代码),那么我将非常感激他/她.
谢谢.
我的目标:只有在QListWidget
您点击某个项目的区域内,才会打开包含删除的菜单.
编辑:好的我用QListWidget
和菜单解决了问题.现在必须完成以下工作:
如果使用鼠标右键单击某个项目,然后单击"删除",则该项目将被删除.
我的代码:
void ProvideContextMenu(const QPoint &); // MainWindow.h
Run Code Online (Sandbox Code Playgroud)
// In MainWindow.cpp
ui->listFiles->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->listFiles, SIGNAL(customContextMenuRequested(const QPoint &)),
this, SLOT(ProvideContextMenu(const QPoint &)));
void MainWindow::ProvideContextMenu(const QPoint &pos)
{
QPoint item = ui->listFiles->mapToGlobal(pos);
QMenu submenu;
submenu.addAction("ADD");
submenu.addAction("Delete");
QAction* rightClickItem = submenu.exec(item);
if (rightClickItem && rightClickItem->text().contains("Delete") )
{
ui->listFiles->takeItem(ui->listFiles->indexAt(pos).row());
}
}
Run Code Online (Sandbox Code Playgroud)
编辑2:好的,我解决了整个问题:D.我上传了我的代码,如果有人需要这样的东西,它可以帮助他/她.