想要右键创建一个菜单action
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
this->setContextMenuPolicy(Qt::NoContextMenu);
// 创建基础顶部菜单
QMenuBar *bar = menuBar();
this->setMenuBar(bar);
QMenu * fileMenu = bar->addMenu("菜单1");
bar->setVisible(false); // 隐藏顶部菜单栏
// 添加子菜单
action1 = fileMenu->addAction("设置");
action2 = fileMenu->addAction("删除");
void MainWindow::on_listWidget_customContextMenuRequested(const QPoint &pos)
{
//if(i==1||j==1)
//{
std::cout << "x pos = "<< pos.x() << "y pos = " << pos.y() << std::endl;
Q_UNUSED(pos);
QMenu *ptr = new QMenu(this);
// 添加Actions创建菜单项
ptr->addAction(action1);
ptr->addAction(action2);
ptr->exec(QCursor::pos());//呼出菜单
delete ptr;
// }
}
参考这篇博客C/C++ Qt ListWidget 增加右键菜单 - lyshark - 博客园 (cnblogs.com)