問題のパラメータを解決するために、信号の機能をリロード

QTでは、我々は唯一のパラメータマッチング、機能を合図し、パラメータマッチングスロット機能が必要とされ、mocのこれら二つの機能は、そうでない場合、コンパイラは、関数呼び出しのどれを伝えることができなくなり、リンクすることができます。

信号機能があるのであれば、それは我々が行うスロット機能を肯定する必要があるか、二つの異なるパラメータを持っていますか?
QT4では、2つの異なるマクロを使用して私たちの接続は、パラメータの型を定義し、我々は明示的に我々が必要とするように指定することができますが、QT5に、我々はマクロ定義を使用していない、我々は次のように接続を宣言します:

QObjectを::(送信*、&信号、*受信機、およびスロット)を接続します。

 

それは、我々は声明の中で表示するために必要なパラメータの種類を与えることができないことが明らかになった、そして次は、異なるパラメータでオーバーロードされた問題を解決するために、私たちに必要なのは、直接以下に示す信号を生成するための明示的なポインタ機能がありますこのような例はcurrentIndexChaned私は信号QComBoxを処理する必要があり、この信号は二つのパラメータ、1はQStringのであり、他方は、我々が機能を使用する必要があり、この信号INT、int型であるがあります。

無効(QComboBox :: *楽しい)(INT)=&QComboBox :: currentIndexChanged。
QObject ::(コンボボックス、楽しい、接続 *受信機、&スロット);

 

このように、我々は、信号スロット関数に渡さはint型であり、また、信号の機能を過負荷の問題を解決します。



おすすめ

転載: www.cnblogs.com/lixuejian/p/11004607.html