2011-08-21 51 views
0

我遇到了一個很奇怪的問題裏面調用時工作:QMenu ::的addAction不特定的,如果從句

if(currentWidgetType_m == WidgetTypesMap) { 
     qDebug() << "Here we are!"; 
     optionsMenu_mp->addAction(tr("Change visibility"), 
     this, SLOT(VisibleItemClicked())); 

     optionsMenu_mp->addSeparator(); 
} 

optionsMenu_mp->addAction(tr("Change statistics"), 
     this, SLOT(StatisticsItemClicked())); 
optionsMenu_mp->addAction(tr("Change view"), 
     this, SLOT(ViewItemClicked())); 

的條件是在這種情況下真實,並在輸出調試消息顯示,但「更改可見性」操作未出現在菜單中。

任何想法可能導致這種情況?

致以問候

+0

奇怪!你有沒有嘗試過創建一個QAction並添加它? –

+1

addAction返回一個新的QAction或null?當您將該代碼移到if之外時,該操作是否會被添加?當你刪除addSeparator()調用時它會被添加嗎? – Torp

回答

0

問題是由於QMenu沒有更新造成的。我通過重新創建QMenu的QAction來解決問題。