函数指针作为 SLOT 参数

Function pointer as SLOT argument

我知道它有类似的主题,但我是 C++ 初学者,无法理解它们,因为它们与我的问题几乎没有区别。
我这样定义类型

typedef void (MainWindow::*MenuListener)(QAction *);

我可以将我的 class 的方法作为参数传递,但在函数中我需要将它传递给 SLOT。我该怎么做? 在我的函数下面:

void MainWindow::showMenu(int count, MenuListener listener)
{
    if(0 < count) {
        int flags = ContextMenu::Remove;

        if(1 == count) { flags |= ContextMenu::Edit; }

        ContextMenu menu("ContextMenu", flags, this);
        connect(&menu, SIGNAL(triggered(QAction*)), this, SLOT(listener));
        menu.exec();
    }
}

函数 showMenu()MainWindow class 的方法,例如我尝试像 listener 参数一样传递的函数。

是时候学习 3 岁的 Qt 了New Signal Slot Syntax:

connect(&menu, &MainWindow::triggered, this, listener);

这些旧的 SIGNALSLOT 宏不接受函数指针,它们需要函数签名。