-1
void RollsRoyceTab::stateRRChanged(int)
 {
     stateRR = checkBoxRollsRoyce->checkState();
     if(stateRR) emit signal_rr_alg; else emit signal_rr_manual;
 }

stateRRステートメントのエラーは、オーバーロードされた関数のアドレスを解決できません

4

1 に答える 1

0

emit単なるシンタックスシュガーです。実際には何も実行せず、C++コードから前処理されます。以下emitは、シグナル名ではなく、有効な関数呼び出しである必要があります。

コードを次のように変更します(シグナルにパラメーターがないと仮定します)。

if(stateRR)
  emit signal_rr_alg();
else
  emit signal_rr_manual();

(ブール値または列挙型パラメーターを持つ単一の信号の方が少し優れている可能性があることに注意してください。ただし、これらの信号を何に接続するかによって異なります。)

于 2013-03-10T18:51:18.700 に答える