QMenu显示在主窗口之外

时间:2013-11-19 17:47:53

标签: qt qt4 qmenu

我正在使用自定义QGraphicsWidget,当我右键单击它时,我想调出一个菜单。我是这样开始的:

void myQGraphicsWidget::mousePressEvent(QGraphicsSceneMouseEvent *event){
    if(event->button() & Qt::RightButton){
        const QString test = "test";
        QMenu  menu;
        menu.setTitle(test);
        menu.addAction(test);
        menu.exec(mapToScene(event->pos()).toPoint());
        //menu.exec(mapToScene(QPointF(0,0)).toPoint());
    }
}

但是菜单显示在主应用程序窗口之外,朝向我的另一台显示器的右下方。当我使用注释掉的版本时,它会显示在我主窗口的顶部。我已经尝试手动调整点以在窗口内按摩它,但它只会跳到窗户顶部或从底部悬挂,从不在里面。

1 个答案:

答案 0 :(得分:0)

QMenu::exec占据全球地位;你正在拍摄小部件相对位置并将其映射到场景位置。

请改为尝试:

    menu.exec(event->screenPos());