2011-03-15 47 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