2013-08-21 24 views
0

我在我的應用程序中有一個由QAction對象填充的(QT)工具欄,其中一個QAction有一個關聯的菜單。當動作被觸發時,我想在QActions的按鈕下面彈出該菜單。如何在QAction觸發器上顯示QMenu

我曾嘗試:

m_ui->action_NewDataType->menu()->show(); 

,但是這說明不是我想要它在屏幕的左上角的菜單。如何在QAction按鈕下方顯示菜單,並與按鈕邊緣完美對齊?

+0

'm_ui-> action_NewDataType->菜單() - >動(X,Y)',是你在找什麼?你也可以調用'm_ui-> action_NewDataType-> menu() - > exec(QPoint(x,y))',這樣你就不必先移動它。 – thuga

+0

是的,但我如何找到(x,y)? – fritzone

+0

是否可以使用QToolButton而不是QToolbar來實現? – Ashif

回答

0

問題就迎刃而解了:

QWidget* w = m_ui->mainToolBar->widgetForAction(m_ui->action_NewDataType); 
m_ui->action_NewDataType->menu()->popup(w->mapToGlobal(QPoint(0, w->height())))