Я хочу добавить подменю в пункт меню динамически. Как я могу добиться этого?Как добавить меню динамически в Qt
Я пробовал вот так, Я создал Action и подменю. Затем я добавил подменю к действию. Но, я подключил «срабатывающий» сигнал действия. его получение аварии, если я нажму на действии ..
я также обработал «aboutToShow» сигнал меню же его также получать аварии, когда я нажимаю на действии ..
Вот код SAMPE.
Submenu = new QMenu(this);
connect(Submenu, SIGNAL(aboutToShow()), this, SLOT(move()));
QAction *test = new QAction(tr("Selection"), this);
test ->setMenu(Submenu);
menubar()->addAction(test);
Я хочу, чтобы получить уведомление, перед показом подменю ..
Additonal информация:
мольбы попробовать этот код, в главном окне конструктора.
QAction *action = new QAction("Test",this);
QAction *dummyaction = new QAction("Testing",this);
QMenu *menu = new QMenu();
menu->addAction(dummyaction);
bool val= connect(menu, SIGNAL(aboutToShow()), this, SLOT(Move()));
val= connect(menu, SIGNAL(aboutToHide()), this, SLOT(Move()));
action->setMenu(menu);
this->menuBar()->addAction(action);
Если мне нравится, я могу видеть одно подменю. Но перед этим слот Move должен вызывать, его не назовут .. и даже до скрыть тоже тот же слот должен позвонить .. его не придет ..
Я попытался вернуть значения connect .. его правда только ... так что это случилось с моим кодом .. пожалуйста сказать ..
Спасибо, , но моя проблема в том, что я могу добавить подменю. Я хочу изменить подменю динамически .. Некоторое время мне нужно добавить больше подменю на некоторое время. В этом случае, когда пользователь нажимает на главное меню, которое имеет подменю, оно должно издавать сигнал «aboutToShow» и подключается к слоту , но во время выполнения, если я нажимаю на mainmenu .. приложение терпит крах – Naruto
Так что вы хотите повторно заполнить меню каждый раз, когда он открыт, я правильно вас понял? Вы удаляете предыдущие действия меню в функции move()? – VestniK
NO .. Я не хочу заполнять любое меню ...просто добавьте код, добавленный под «дополнительной информацией», и попробуйте в конструкторе mainwindow..измените поведение .. не получается, почему выдается сигнал «abouttoshow». не могли бы вы проверить один раз .. это ошибка? или я пропал без вести. – Naruto