C++ QAction赢得';我无法连接到我的插槽
我试图用Qt制作一个IHM,我从制作一个基本菜单(文件、编辑…)开始。 到目前为止,我的菜单包含“文件”,然后显示“新建项目、打开项目、退出”。 看起来不错,但我的问题是我似乎无法触发这些操作(单击它们或通过快捷键) 这是我的位置:C++ QAction赢得';我无法连接到我的插槽,c++,qt,signals-slots,qmenu,C++,Qt,Signals Slots,Qmenu,我试图用Qt制作一个IHM,我从制作一个基本菜单(文件、编辑…)开始。 到目前为止,我的菜单包含“文件”,然后显示“新建项目、打开项目、退出”。 看起来不错,但我的问题是我似乎无法触发这些操作(单击它们或通过快捷键) 这是我的位置: void KoriganEngine::launchNewProjectWidget(){ //External QWidget m_nwProj = new NewProjectWidget(NULL,Qt::MSWindowsFixedSizeDia
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");
}
}
以及与按钮一起工作的代码:
connect(m_button, SIGNAL(clicked()), this, SLOT(launchNewProjectWidget()));
所以我真的不明白为什么它的反应不一样,我已经一遍又一遍地阅读了Qt示例。。。我一定错过了什么,但如果有人把我当作一个想法,我会非常感激,因为它开始让我讨厌生活:p
谢谢大家
PS:好的,我不确定我是否能处理好代码块业务,为我辩护,使用它真的很奇怪…:p您在触发单词中犯了一个错误:p应该是:
connect(m_quitAction, SIGNAL(triggered()), this, SLOT(quit()));
------
已触发,未触发!:) 您在触发的word:p中犯了一个错误,应该是:
connect(m_quitAction, SIGNAL(triggered()), this, SLOT(quit()));
------
已触发,未触发!:) 如果我没弄错的话,你的问题是m_openProjAction->activate(QAction::Hover);这会导致QAction发出悬停()而不是触发() 如果我没弄错的话,你的问题是m_openProjAction->activate(QAction::Hover);这会导致QAction发出悬停()而不是触发() 你说得不对。这个函数只是发出信号,而不是设置它。我想到了这一点,但这不是问题所在。真正的是上面的解释。无论如何,谢谢是的,没有注意到输入错误,所以寻找一些真正的编码错误,你应该在附近的控制台上运行qt应用程序,这样当信号或插槽由于任何原因无法连接时,你都会看到警告你是不对的。这个函数只是发出信号,而不是设置它。我想到了这一点,但这不是问题所在。真正的是上面的解释。无论如何,谢谢是的,我没有注意到输入错误,所以寻找一些真正的编码错误,你应该在附近的控制台上运行qt应用程序,这样当信号或插槽由于任何原因无法连接时,你会看到警告谢谢你,我只是注意到,我很惭愧,我因为拼写问题浪费了几个小时。。。无论如何谢谢谢谢,我只是注意到,我很惭愧,因为拼写问题我已经浪费了几个小时。。。无论如何谢谢你