QAction не подключится к моему слоту

Я пытаюсь создать IHM с помощью Qt, и я начал с создания основного меню (Файл, Изменить …).
До сих пор у меня есть меню, содержащее «Файл», в котором отображается «Новый проект, Открыть проект, Выйти».
Выглядит великолепно, но моя проблема в том, что я не могу вызвать эти действия (щелкнув их или по сочетанию клавиш).

Вот мой слот:

void KoriganEngine::launchNewProjectWidget(){
//External QWidget
m_nwProj = new NewProjectWidget(NULL,Qt::MSWindowsFixedSizeDialogHint);
m_nwProj->show();
}

Если я использую этот слот с подключенной кнопкой, мой новый QWidget отображается правильно.
Однако невозможно сделать то же самое с действием …

Вот код моих действий и меню:

    void KoriganEngine::KG_createMenus(){
//init actions
KG_createMenuActions();

//add menu to the bar
m_fileMenu = menuBar()->addMenu("File");
m_fileMenu->addAction(m_newProjAction);
m_fileMenu->addAction(m_openProjAction);
m_fileMenu->addSeparator();
m_fileMenu->addAction(m_quitAction);

m_editMenu = menuBar()->addMenu("Edit");

}

    void KoriganEngine::KG_createMenuActions(){
m_newProjAction = new QAction("New Project...", this);
m_newProjAction->setShortcuts(QKeySequence::New);
m_newProjAction->setStatusTip(QString("Create a new Project"));
connect(m_newProjAction, SIGNAL(trigerred()), this, SLOT(slottest()));

m_openProjAction = new QAction("Open Project...", this);
m_openProjAction->setShortcuts(QKeySequence::Open);
m_openProjAction->activate( QAction::Hover);
connect(m_openProjAction, SIGNAL(trigerred()), this, SLOT(launchNewProjectWidget())); //TODO replace the slots

m_quitAction = new QAction("Exit", this);
connect(m_quitAction, SIGNAL(trigerred()), this, SLOT(quit()));

}

И код, который работает с кнопкой:

connect(m_button, SIGNAL(clicked()), this, SLOT(launchNewProjectWidget()));

Так что я не совсем понимаю, почему это не должно реагировать одинаково, я читал примеры Qt снова и снова … Я, должно быть, что-то пропустил, но если кто-нибудь как идея, я буду более чем благодарен, как это заставляет меня ненавидеть жизнь: p

Спасибо вам всем.

PS: Ладно, не уверен, что я отлично справляюсь с бизнесом блоков кода, в мою защиту это действительно странно использовать …: p

0

Решение

Вы ошиблись в появившемся слове: P Это должно быть:

connect(m_quitAction, SIGNAL(triggered()), this, SLOT(quit()));
------

Сработало, не сработало! 🙂

5

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

если я правильно понимаю, ваша проблема — m_openProjAction-> activ (QAction :: Hover); что заставляет QAction испускать hovered () вместо triggered ();

0

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