在Qt5中将QAction连接到nonmember-qt函数

时间:2015-10-20 16:45:10

标签: c++ qt signals-slots

我想为我的TrayIcon添加一个按钮(在Qt5.5中)。 (我正在使用QMenu,QAction)当我点击它时,我想调用公共的非Qt函数。如何连接到此SIGNAL?

mainwindow.h:
private:
    void tray();
    QMenu *trayIconMenu;
    QAction *ExampleAction;

mainwindow.cpp:

    void exfunction()
    {
    }

    void MainWindow::tray()
    {
        ExampleAction = new QAction(tr("Sample Text"), this);
        connect(ExampleAction,SIGNAL(triggered()), exfunction()); //How to propertly connect it? 

        trayIconMenu = new QMenu(this);
        trayIconMenu->addAction(ExampleAction);
    }

1 个答案:

答案 0 :(得分:7)

在Qt 5中,您可以连接到常规成员函数,自由函数或lambda表达式,但必须使用new syntax

connect(ExampleAction, &QAction::triggered, exfunction);