Как подключиться к меню с помощью действия в Qt Creator?
Я совершенно не знаком с Qt.
Я начал с нового приложения Qt4 GUI.
Используя конструктор, я создал такое меню:
File
- Exit
Как получить действие, связанное с пунктом меню?
Я нашел что-то, называемое редактором "Сигналы и слоты", но понятия не имею, как его использовать.
Ответы
Ответ 1
Нажмите на зеленый знак плюса после того, как вы выбрали редактор слотов сигналов. Он даст вам 4 поля для заполнения. Для отправителя вы выбираете, что создает сигнал. Например, ActionExit может быть именем, которое вы создали для элемента меню выхода. Сигнал, вероятно, будет нажат(). Обычно приемник - это класс, который вы создали, который имеет все ваши методы. Слот - это метод, который вы создали в этом классе, который вы хотите выполнить. Например:
actionExit clicked() <nameOfClass> exitGame()
Надеюсь, что это поможет.
Ответ 2
Мне удалось сделать это таким образом, который кажется намного проще. В окне редактора действий Qt Creator я вижу запись для элемента меню, который я нажал. Я нажимаю эту запись и выбираю "Перейти в слот...", затем я выбираю triggered() из всплывающего окна и нажимаю "ОК". Qt Creator перескакивает меня на код, который он только что добавил... Я поставил там инструкцию qDebug, и она работает!
Ответ 3
Перейдите в редактор слотов, а затем щелкните вкладку "Редактор действий" на левой стороне. Все перечисленные действия меню.
Щелкните правой кнопкой мыши → перейти в слот, предоставляет функцию слота.
Ответ 4
Я видел 2, возможно, 3 вопроса такого рода на этом замечательном форуме, но все они очень запутанные, нет необходимости переходить к создателю сигнала/слота, который только что получил Qt Designer, и выполните следующие шаги
1.add Меню и действие в строке меню и добавьте любую функцию в слот вашего файла mainwindow.h как следующие private slots: void help();
2. Во-вторых, добавьте следующий код в ваш mainwindow.cpp.
connect(ui->actionmyactions, SIGNAL(triggered()), this, SLOT(help()));
3. То же самое можно сделать для меню, используя следующий код:
connect(ui->menuHelp, SIGNAL(aboutToShow()), this, SLOT(help()));
4. Вы можете получить желаемые результаты, не переходя в Qt Designer следующим образом.
-
объявите ваше действие в mainwindow.h как следующее
QAction *myaction;
-
и добавьте следующий код в ваш mainwindow.cpp
myaction = ui->mainToolBar->addAction("help"); connect(myaction, SIGNAL(triggered()), this, SLOT(help()));