如何成功连接Qt子菜单动作?

问题描述 投票:0回答:1

我正在尝试做的事情:

我想以编程方式构建一组包含多个菜单项的子菜单,将一些整数数据(实际上是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的特定方式进行构造。

会发生什么:

enter image description here

qt action
1个回答
0
投票

您不能混合使用连接语法,解决方案是仅使用其中一种。对于现代语法提供的优势,那么解决方案是:

© www.soinside.com 2019 - 2024. All rights reserved.