1、使用Qt::CustomContextMenu :发送信号QWidget::customContextMenuRequested(), 通过发信号的形式。
2、通过发送void QWidget::customContextMenuRequested(const QPoint &pos)信号, 其中pos 是鼠标的坐标。
3、setContextMenuPolicy(Qt::CustomContextMenu);在属性设置中,将contextMenuPolicy属性要设置为:CustomContextMenu,这步不能忘记,否则右键无反应。
示例一:
mainwindow.h
private slots:
void customContextMenu(const QPoint &pos);
private:
Ui::MainWindow *ui;
QMenu *mCreateMenu = nullptr; ///< 创建菜单
mainwindow.cpp
#include <QTreeWidget>
#include <QTreeWidgetItem>
ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);// 开启右键单击目录 connect(ui>treeWidget,&QTreeWidget::customContextMenu