私は2つのアクションを実行するQPushButtonを持っています。 autoRepeatによる呼び出しを含め、ボタンの押されたスロットが呼び出されるたびに1つのアクションが発生する必要があります。 2番目のアクションは、ボタンが最初に押されたときに開始され、ユーザーがそれ以上保持しない場合にのみ終了する必要があります。QPushButtonの解放された信号が自動リピートまたは実際のマウスの解放の結果であるかどうかを判断する方法
問題は、autoRepeatがボタンの押された、リリースされた、クリックされた信号をトリガーすることです。この結果、第2のアクションが終了し、ボタンが押されている間持続するのではなく、すべての繰り返しで再び開始される。既存の押されたスロットと解放されたスロットだけを使用してボタンが実際にユーザーから解放されたかどうかを確認するにはどうすればよいですか?
例コード:
void MyClass::on_button_pressed()
{
startHeldAction();
doRepeatedAction();
}
void MyClass::on_button_released()
{
stopHeldAction();
}