Получение выбранного пункта меню

Я внедряю меню времени выполнения для кнопки (QPushButton) в моем приложении, пользователь должен выбирать между ftp и http, когда он нажимает кнопку загрузки.

QMenu menu(this);
menu.addAction("ftp");
menu.addAction("http");
ui.mUploadBtn->setMenu(&menu);
ui.mUploadBtn->showMenu();

Мой вопрос заключается в том, как я могу узнать, какой пользователь выбрал выбор или его функция, чтобы получить это.

благодарю вас

0

Решение

Один из способов поймать результат меню — сделать это:

 QAction* action = menu.exec(QCursor::pos());

Тогда вы можете использовать

action->text()==QString("ftp")

Чтобы узнать, нажал ли пользователь на «FTP».

Так, как сказал Фрэнк Остерфельд в комментариях, вы также можете создать слот в своем классе и подключить к нему сигнал действия триггера меню:

connect(&menu, SIGNAL(triggered(QAction*)), this, SLOT( sl_OnMenuTriggered(QAction* )));

void sl_OnMenuTriggered(QAction* _action)
{
if(_action->text()=="ftp") ...
}

Это «не блокирующий» способ.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]