2011-08-21 2 views
0

아주 이상한 문제 내에서 호출 할 때 작동하지 않습니다QMenu를 :: addAction 특정 I가 발생하면 절

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을 다시 작성하여 문제를 해결했습니다.