QListWidget添加右键菜单
时间: 2024-01-17 07:05:57 浏览: 160
可以使用QMenu和QContextMenuEvent来实现QListWidget的右键菜单。可以在QListWidget的构造函数中连接一个右键菜单的槽函数,如下所示:
```c++
connect(ui->listWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showContextMenu(const QPoint&)));
```
在右键菜单的槽函数showContextMenu中,可以创建QMenu并添加菜单项。如下所示:
```c++
void MainWindow::showContextMenu(const QPoint& pos)
{
QListWidgetItem* item = ui->listWidget->itemAt(pos);
if (item == nullptr)
return;
QMenu menu;
QAction* editAction = menu.addAction("Edit");
QAction* deleteAction = menu.addAction("Delete");
connect(editAction, &QAction::triggered, [=] {
// Edit item code ...
});
connect(deleteAction, &QAction::triggered, [=] {
// Delete item code ...
});
menu.exec(ui->listWidget->mapToGlobal(pos));
}
```
这段代码中,首先获取到鼠标右击的QListWidgetItem,然后创建一个QMenu并添加菜单项,最后通过menu.exec显示右键菜单。当用户选择了菜单项时,会触发对应的槽函数(如editAction和deleteAction),在槽函数中可以编写对应的处理代码。