我想以编程方式构建一组包含多个菜单项的子菜单,将一些整数数据(实际上是QVariant
附加到这些菜单项的动作中,然后当我捕获菜单动作时,我想获取该数据然后根据这些数据进行处理。
我不想为每个子菜单项都创建一个唯一的动作调用-在多个子菜单中将有大量的它们,并且我拥有我所需要的所有信息,以区分它们并仅通过适当的操作即可假定可以使这种整数数据工作而无需采取大量独立的操作。
因此,我试图将这些各个子菜单上的所有项目都连接到一个动作/插槽。
我在Qt的connect()
要求/语法上遇到麻烦。
Qt 5.8,OSX 10.12.6
public slots:
void on_actionOp_Action_triggered();
void MainWindow::on_actionOp_Action_triggered()
{
//stuff
}
connect(additm, // submenu item
SIGNAL(triggered(QAction*)), // item signal
this, // Q_OBJECT window that owns the menu and submenu
&MainWindow::on_actionOp_Action_triggered); // the (failing) function pointer to the slot
为什么我要这样尝试:
我了解到connect()
的候选者可以通过here的特定方式进行构造。
会发生什么:
您不能混合使用连接语法,解决方案是仅使用其中一种。对于现代语法提供的优势,那么解决方案是: