Как подключиться к меню с помощью действия в 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 следующим образом.

  1. объявите ваше действие в mainwindow.h как следующее

    QAction *myaction;

  2. и добавьте следующий код в ваш mainwindow.cpp

    myaction = ui->mainToolBar->addAction("help"); connect(myaction, SIGNAL(triggered()), this, SLOT(help()));