Qt5 C++将触发的QAction连接到成员函数

use*_*975 2 c++ qt5

为什么我无法连接动作以在触发时调用该函数?我认为我已经理解了根据这个的语法 ,声明可以直接调用函数.

void Traymenu::createMainContextMenu(){
    QAction *actionNewNote = mainContextMenu.addAction("Test Func");

    QObject::connect(actionNewNote,QAction::triggered,Traymenu::testFunc);

    mainIcon.setContextMenu(&mainContextMenu);

}

void Traymenu::testFunc(){
    printf("test func");
}
Run Code Online (Sandbox Code Playgroud)

错误:invalid use of non-static member function 'void QAction::triggered(bool)

                                         ^
Run Code Online (Sandbox Code Playgroud)

RA.*_*RA. 5

您需要将函数指针传递给connect.您还需要传入一个指向接收对象的指针:

QObject::connect(actionNewNote, &QAction::triggered, this, &Traymenu::testFunc);
Run Code Online (Sandbox Code Playgroud)

注意&之前的" " QAction::triggered.