这是我在这里遇到的非常奇怪的情况,我试图通过自己解决失败。尝试谷歌,但找不到我在这里面临的问题。 我创建了5个菜单,文件,编辑,查看,渲染和Windows。
“视图”菜单中有一些操作,例如“复制部件”和“粘贴部件”等。
当我触发“复制零件”动作时,应启用“粘贴零件”。所以我在copyShellsAct_cb()Slot中调用pasteShellsAct-> setEnabled(true)。它从未工作/启用。但是如果我在任何其他菜单的动作插槽中调用pasteShellsAct-> setEnabled(true)它可以正常工作。例如,我在File的动作的Slot open()中调用pasteShellsAct-> setEnabled(true),或者在Render的动作的Slot on3D()上调用它,它可以正常工作。
我在想的是,不同行动的老虎机之间可能存在冲突吗?可能是我遗失了什么?我不确定。为什么会这样?
这里有一些代码......
copyShellsAct = new QAction(tr("Copy Part(s)"), this);
copyShellsAct->setEnabled(true);
connect(copyShellsAct, SIGNAL(triggered()), this, SLOT(copyShellsAct_cb()));
pasteShellsAct = new QAction(tr("Paste Part(s)"), this);
pasteShellsAct->setEnabled(false);
connect(pasteShellsAct, SIGNAL(triggered()), this, SLOT(pasteShellsAct_cb()));
void FurApp::fvkQtMenu::copyShellsAct_cb()
{
// Output of TRUE and FALSE works fine. But action doesn't get Enabled on in View menu. Other menus are working fine.
if(pasteShellsAct->isEnabled())
qDebug() << "TRUE";
else
qDebug() << "FALSE";
pasteShellsAct->setEnabled(true);
}
void FurApp::fvkQtMenu::pasteShellsAct_cb()
{
pasteShellsAct->setEnabled(false);
}
有什么想法吗?我确定我错过了什么但是什么?
我在Windows 8.1下使用Qt 5.4.1和VS2010。 感谢。