void setContextMenuPolicy( Qt::ContextMenuPolicy policy)
该函数可以设置右键菜单的具体模式,一般需要自己写槽函数的都需要设置Qt::ContextMenuPolicy的枚举值为Qt::CustomContextMenu
这个枚举意味着会发出一个信号:void QWidget::customContextMenuRequested(const QPoint & pos) [signal]
但其只是发送信号,所以要自己去写槽函数slot。槽函数来显示右键菜单,右键菜单显示在pos的位置。
下面写一个实例:
头文件
#include <QtWidgets/QMainWindow>
#include <QMenu>
#include <QPoint>
#include <QTreeWidgetItem>
#include "ui_menu_test.h"
class menu_test : public QMainWindow
{
Q_OBJECT
public:
menu_test(QWidget *parent = Q_NULLPTR);
QMenu* popMenu;
QTreeWidgetItem* curItem;
private:
Ui::menu_testClass ui;
public slots:
void sltShowPopMenu(const QPoint&);
void getname1();
void getname2();
};