1

例如

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.

除了重命名两个重载函数之一之外,如何克服它?谢谢。

4

1 回答 1

4

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

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

或者

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

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

connect((&action, &QAction::triggered, &a, static_cast<void (A::*)(int)>(&A::f));
于 2013-02-05T23:27:41.477 回答