1

我正在构建一个菜单,我希望能够同时单击QActionQMenu项目。

运行exec时,如果单击QMenu. 即使我在QMenu.

有没有办法做到这一点?

这是我尝试过的:

QMenu* menu = new QMenu( "xxx", topMenu );
QAction* action = menu->menuAction();
topMenu->addAction( action );
4

1 回答 1

0

编辑:

我不知道为什么exec()让它与众不同,但要绕过它,您可以创建子类QMenu作为您的 topMenu,以便它像这样手动处理鼠标释放事件:

void CustomMenu::mouseReleaseEvent(QMouseEvent *event) {

    QAction *const actionAtEvent = actionAt(event->pos());

    if (actionAtEvent)
        actionAtEvent->trigger();

    QMenu::mouseReleaseEvent(event);
}

原始的,没有帮助的答案:

它可能会帮助您使用QMenu::menuAction()来关联QAction并连接它的信号。

于 2014-08-08T06:45:00.047 回答