Qt5过载插槽错误

Qt5过载插槽错误,qt,Qt,比如说 class A : public QObject { Q_OBJECT public: void f(int); void f(); }; A a; QAction action(0); connect(&action, &QAction::triggered, &a, &A::f); // error because 2 f functions. 除了重命名两个重载函数中的一个之外,如何克服它?谢谢。QT5仍然支持使用完整原型的“

比如说

class A : public QObject
{
Q_OBJECT

public:
    void f(int);
    void f();
};

A a;
QAction action(0);

connect(&action, &QAction::triggered, &a, &A::f); // error because 2 f functions.
除了重命名两个重载函数中的一个之外,如何克服它?谢谢。

QT5仍然支持使用完整原型的“旧”连接方式:

connect((&action, SIGNAL(triggered()), &a, SLOT(f(int));

编辑:使用新方法可以通过演员阵容完成(我自己没有尝试过):

connect(&action,&QAction::triggered,&a,static_cast(&a::f));
QT5仍然支持使用完整原型的“旧”连接方式:

connect((&action, SIGNAL(triggered()), &a, SLOT(f(int));

编辑:使用新方法可以通过演员阵容完成(我自己没有尝试过):

connect(&action,&QAction::triggered,&a,static_cast(&a::f));

if keep using the new feature(如果继续使用新功能)如何?第一条语句是否有效?似乎需要信号和插槽之间的参数匹配。if keep using the new feature(如果继续使用新功能)如何?第一条语句是否有效?似乎需要信号和插槽之间的参数匹配。
connect((&action, &QAction::triggered, &a, static_cast<void (A::*)(int)>(&A::f));