如何使用 QGLWidget 显示弹出菜单?

发布于 2024-08-29 03:10:53 字数 37 浏览 13 评论 0原文

当您在 QGLWidget 中右键单击时如何显示上下文菜单?

how to show a context menu when you right click within a QGLWidget?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫七 2024-09-05 03:10:53

重写 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
}

Override the QGLWidget class and the mouseReleaseEvent( QMouseEvent * event ) function
Then in the mouseReleaseEvent function, call QMenu exec() with the mapped global position.

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
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文