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.

2つのオーバーロードされた関数の1つを名前変更する以外に、それを克服するにはどうすればよいですか?ありがとう。

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 に答える