通常,单击鼠标右键时会导致QContextMenuEvent。但是可以更改按钮吗?我的意思是我想用鼠标左键和#34; ALT"修改。我试图在mousePressEvent中访问它,但它没有以正确的方式工作。
答案 0 :(得分:0)
您可以通过继承QWidget:
来完成此操作class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = 0);
protected:
void mouseReleaseEvent(QMouseEvent *event);
};
及其实施:
MyWidget:: MyWidget(QWidget *parent): QWidget(parent)
{
}
void MyWidget::mouseReleaseEvent(QMouseEvent *event)
{
QMenu menu;
QAction *act1 = menu.addAction("action1");
QAction *act2 = menu.addAction("action2");
if(event->button() == Qt::LeftButton&&
event->modifiers()&Qt::AltModifier){
QAction *selectedAction = menu.exec(event->globalPos());
if(selectedAction == act1)
{
//do something
}else if( selectedAction == act2 ){
//do something else
}
}
}