我正在嘗試使用Qt進行IHM,並且我開始製作基本菜單(文件,編輯...)。 到目前爲止,我有我的菜單包含「文件」,然後顯示「新項目,打開項目,退出」。 看起來不錯,但我的問題是我似乎無法觸發這些操作(點擊它們或按快捷鍵)。QAction不會連接到我的插槽
這裏是我的槽:
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
謝謝,我只是注意到,我很慚愧,我因爲拼寫問題而失去了幾個小時......無論如何謝謝 – Crumble