Как показать всплывающее меню с помощью QGLWidget? - PullRequest
2 голосов
/ 13 апреля 2010

как отобразить контекстное меню, когда вы щелкаете правой кнопкой мыши внутри QGLWidget?

1 Ответ

1 голос
/ 14 апреля 2010

Переопределить класс QGLWidget и функцию mouseReleaseEvent (событие QMouseEvent *)
Затем в функции mouseReleaseEvent вызовите QMenu exec () с сопоставленной глобальной позицией.

void MyWidget::mouseReleaseEvent ( QMouseEvent * event )
{
    if(event->button() == Qt::RightButton)
    {
        QMenu menu;

        QAction* openAct = new QAction("Open...", this);

        menu.addAction(openAct);

        menu.addSeparator();
        menu.exec(mapToGlobal(event->pos()));
    }
    QGLWidget::mouseReleaseEvent(event);  //Dont forget to pass on the event to parent
}
...