#include "widget.h"
#include "ui_widget.h"
#include<QMenu>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//添加右键菜单策略,以响应customContextMenuRequested()信号
ui->pushButton->setContextMenuPolicy(Qt::CustomContextMenu);
}
Widget::~Widget()
{
delete ui;
}
//按钮点击槽函数
void Widget::on_pushButton_clicked()
{
//相关功能
}
void Widget::on_pushButton_customContextMenuRequested(const QPoint &pos)
{
QMenu *cmenu = new QMenu(ui->pushButton);//新建Menu
//新建三个右键菜单,分别为Menu1,Menu2,Menu3
QAction *action1 = cmenu->addAction("Menu 1");
QAction *action2 = cmenu->addAction("Menu 2");
QAction *action3 = cmenu->addAction("Menu 3");
//连接这三个菜单项触发动作和对应的槽函数
connect(action1, SIGNAL(triggered(bool)), this, SLOT(on_menu_click(bool)));
connect(action2, SIGNAL(triggered(bool)), this, SLOT(on_menu_click(bool)));
connect(action3, SIGNAL(triggered(bool)), this, SLOT(on_menu_click(bool)));
cmenu->exec(QCursor::pos());//呼出菜单
}
评论0