创建弹出菜单对象
菜单对象可以用QMenu类实现,表示的是弹出菜单。菜单内的对象通过QAction实现。
//创建弹出菜单对象
pMenu = new QMenu(this);//pMenu 为类成员变量
QAction *pAction = new QAction(pMenu);
pAction->setText("action1");//设置文字
pAction->setIcon(QIcon(":/new/prefix1/forbidPNG"));//设置图标
pMenu->addAction(pAction);//action添加到menu中
connect(pAction,SIGNAL(triggered()),this,SLOT(on_action_trigered()));//关联事件响应函数,选择菜单中的action后,触发槽函数执行
实现事件响应槽函数
void LibTest::on_action_trigered()
{
QMessageBox::about(NULL,"","triggered");
}
响应鼠标单击事件
- 重写mousePressEvent(QMouseEvent* event)。在函数内判断鼠标点击按钮并显示菜单
鼠标事件响应函数
void LibTest::mousePressEvent(QMouseEvent *event)
{
mousePosP = event->pos();//mousePosP 全局变量,QPointer
QPointF mouseLocPos = event->localPos();//获得指针当前的相对地址,同pos()
QPoint mouseGlobePos = event->globalPos();//获得指针当前的绝对地址,相对屏幕左上角
if (event->button() == Qt::RightButton)//判断事件为鼠标右键
{
//下面执行弹出操作
pMenu->popup(event->globalPos());
}
}