2011-03-15 150 views
3

在我的QMenuBar中,我有几个菜单。QWidgetAction:如何让用户完成输入后菜单消失

其中一个菜单中有一个QWidgetAction。

它显示正常,但问题是,一旦用户完成他的输入,我想菜单消失(正如古典QAction的正常行为)。

但是,我不知道如何做到这一点。在我的QWidgetAction中,当用户完成时有一个按钮被用户按下;因此,我可以绑定到此按钮的clicked()信号。

在插槽中,我尝试setFocus()菜单外的元素,但菜单仍然不消失。

如何让菜单在我的用户完成与QWidgetAction的交互时关闭?

感谢

回答

3

QMenu继承了QWidget,因此调用yourMenu->hide()应该做的工作。

希望这会有所帮助。

+0

嗯,这个工程。我以为我尝试过,但我错误地试图隐藏()QMenuBar而不是QMenu。谢谢! – houbysoft 2011-03-15 23:55:30

+0

是的,它发生了:) – zkunov 2011-03-15 23:57:24

+0

唯一的问题是如果你的菜单是一个子菜单(或许多子菜单之一),因为它不会隐藏完整的菜单树。 – 2015-09-28 14:36:52