QMenu::addAction does not work when called inside a specific if-clause
Вопрос
I encountered a very strange problem:
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() ) );
The condition is true in this case and the debug message shows in the output, but the "Change visibility" action does not appear in the menu.
Any ideas what might be causing this?
Best regards
Решение
The problem was caused by the QMenu not updating. I solved the problem by recreating the QAction that held the QMenu.
Не связан с StackOverflow