其他分享
首页 > 其他分享> > Qt创建鼠标右键快捷菜单

Qt创建鼠标右键快捷菜单

作者:互联网

1、每个QWidget继承的类都有customContextMenuRequested(), 这个信号可以在鼠标右击时候发射,为此信号编写槽函数可以创建和运行右键快捷菜单

[signal] void QWidget::customContextMenuRequested(const QPoint &pos)

 

2、代码示例

void MainWindow::on_listWidget_customContextMenuRequested(const QPoint &pos)
{  // 提前在设计师界面创建一个QListWidget,以及对应的QAction
    Q_UNUSED(pos);
    QMenu* menuList=new QMenu(this); //创建菜单

  //添加Actions创建菜单项
    menuList->addAction(ui->actListIni);
    menuList->addAction(ui->actListClear);
    menuList->addAction(ui->actListInsert);
    menuList->addAction(ui->actListAppend);
    menuList->addAction(ui->actListDelete);
    menuList->addSeparator();
    menuList->addAction(ui->actSelALL);
    menuList->addAction(ui->actSelNone);
    menuList->addAction(ui->actSelInvs);

    menuList->exec(QCursor::pos()); //在鼠标光标位置显示右键快捷菜单

    delete menuList; //手工创建的指针必须手工删除
}
//  listWidget需要设定菜单的策略,才能在右击时候发出customContextMenuRequested()信号,可在构造函数设定
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);

 

3、效果

 

标签:addAction,菜单,鼠标,pos,ui,右键,customContextMenuRequested,menuList,Qt
来源: https://www.cnblogs.com/GEEK-ZHAO/p/13759068.html