setContextMenuPolicy(Qt::CustomContextMenu)自定义右键
//listWidget属性设置为自定义菜单
ui->listWidgetCommon->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->listWidgetCommon, &QListWidget::customContextMenuRequested, [=](const QPoint& pos)
{
QMenu* pMenu = new QMenu(ui->listWidgetCommon);
QAction* pActionProperties = new QAction(tr("Modify properties"), pMenu);
//pActionProperties->setShortcut(QKeySequence("Ctrl+C"));//快捷键
connect(pActionProperties, &QAction::triggered, [=] {
onModifyProperties();//点击右键菜单需要执行的函数
});
//只有当item不为空时才添加右键菜单
if (ui->listWidgetCommon->itemAt(mapFromGlobal(QCursor::pos()))!=nullptr)
{
pMenu->addAction(pActionProperties);
pMenu->popup(ui->listWidgetCommon->mapToGlobal(pos));
}
});
最终实现效果如下: