首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMenu执行部分返回QMenu单击(而不是QAction)

QMenu执行部分返回QMenu单击(而不是QAction)
EN

Stack Overflow用户
提问于 2014-08-08 06:04:16
回答 1查看 1.8K关注 0票数 1

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

在运行exec时,如果单击QMenu,什么都不会发生。即使我向QMenu添加了一个操作。

有办法这样做吗?

以下是我尝试过的:

代码语言:javascript
复制
QMenu* menu = new QMenu( "xxx", topMenu );
QAction* action = menu->menuAction();
topMenu->addAction( action );
EN

回答 1

Stack Overflow用户

发布于 2014-08-08 06:45:00

编辑:

我不知道exec()为什么会有所不同,但是要遍历它,您可以创建QMenu的子类作为您的topMenu,这样它就可以像这样手动处理鼠标发布事件:

代码语言:javascript
复制
void CustomMenu::mouseReleaseEvent(QMouseEvent *event) {

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

    if (actionAtEvent)
        actionAtEvent->trigger();

    QMenu::mouseReleaseEvent(event);
}

原版,没有帮助的答案:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25196961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档