我正在构建一个菜单,我希望能够同时点击QAction和QMenu项目。
在运行exec时,如果单击QMenu,什么都不会发生。即使我向QMenu添加了一个操作。
有办法这样做吗?
以下是我尝试过的:
QMenu* menu = new QMenu( "xxx", topMenu );
QAction* action = menu->menuAction();
topMenu->addAction( action );发布于 2014-08-08 06:45:00
编辑:
我不知道exec()为什么会有所不同,但是要遍历它,您可以创建QMenu的子类作为您的topMenu,这样它就可以像这样手动处理鼠标发布事件:
void CustomMenu::mouseReleaseEvent(QMouseEvent *event) {
QAction *const actionAtEvent = actionAt(event->pos());
if (actionAtEvent)
actionAtEvent->trigger();
QMenu::mouseReleaseEvent(event);
}原版,没有帮助的答案:
它可能会帮助您使用QMenu::menuAction()获取关联的QAction并连接其信号。
https://stackoverflow.com/questions/25196961
复制相似问题