2

QGLWidget内で右クリックしたときにコンテキストメニューを表示する方法は?

4

1 に答える 1

1

QGLWidget クラスと mouseReleaseEvent( QMouseEvent * event ) 関数をオーバーライドします
。次に、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
}
于 2010-04-13T23:43:46.210 に答える