特定の条件が真になるのを待つタイマーを開始しました。IF条件が真の場合、タイマーを停止し、タイムアウト信号を送信したり、接続されたスロットを実行したりしたくありません。ただし、指定された時間内に条件が false の場合は、timeout() シグナルを発行しても問題ありません。しかし、どのような場合でも、常にタイムアウト信号を発します。blockSignals ( true ) も使用しましたが、機能しません。どなたかアドバイスをお願いします。
void timerStart( QTimer* timer, int timeMillisecond )
{
timer = new QTimer( this );
timer->setInterval( timeMillisecond );
timer->setSingleShot( true );
connect( timer, SIGNAL( timeout() ), this, SLOT( noRespFrmServer( ) ) ) ;
//timer->start( timeMillisecond );
timer->start();
}
void timerStop( QTimer* timer )
{
connect( timer, SIGNAL( destroyed( timer ) ), this, SLOT( stopTimerbeforeTimeout( ) ) );
qDebug() << " we are in timer stop";
if( timer )
{
timer->stop();
timer->blockSignals( true );
delete timer;
}
}
また、timerStop 関数で破棄された信号を送信しようとしましたが、接続に失敗したという応答がありました。私にアドバイスしてください。