[英]QAction won't connect to my slot
我正在嘗試使用Qt制作IHM,然后從制作基本菜單(文件,編輯...)開始。 到目前為止,我的菜單包含“文件”,然后顯示“新建項目,打開項目,退出”。 看起來不錯,但是我的問題是我似乎無法觸發這些動作(單擊它們或通過快捷鍵)。
這是我的廣告位:
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
您在觸發詞:P中犯了一個錯誤,應該是:
connect(m_quitAction, SIGNAL(triggered()), this, SLOT(quit()));
------
觸發,不觸發! :)
如果我正確,你的問題是m_openProjAction-> activate(QAction :: Hover); 這導致QAction發出hovered()而不是Triggered();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.