我正在构建一个菜单,我希望能够同时单击QAction
和QMenu
项目。
运行exec
时,如果单击QMenu
. 即使我在QMenu
.
有没有办法做到这一点?
这是我尝试过的:
QMenu* menu = new QMenu( "xxx", topMenu );
QAction* action = menu->menuAction();
topMenu->addAction( action );
编辑:
我不知道为什么exec()
让它与众不同,但要绕过它,您可以创建子类QMenu
作为您的 topMenu,以便它像这样手动处理鼠标释放事件:
void CustomMenu::mouseReleaseEvent(QMouseEvent *event) {
QAction *const actionAtEvent = actionAt(event->pos());
if (actionAtEvent)
actionAtEvent->trigger();
QMenu::mouseReleaseEvent(event);
}
原始的,没有帮助的答案:
它可能会帮助您使用QMenu::menuAction()来关联QAction
并连接它的信号。