Add a right-click menu for the item in ListWidget in QT

//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));
       }
});

The final effect is as follows:
Insert picture description here

Guess you like

Origin blog.csdn.net/bureau123/article/details/111725927