C++ 在Qt中的IF语句中设置时间延迟
我有实时信号,我需要检查信号是否超过阈值,并设置延迟约1秒。我如何实现这一点C++ 在Qt中的IF语句中设置时间延迟,c++,qt,C++,Qt,我有实时信号,我需要检查信号是否超过阈值,并设置延迟约1秒。我如何实现这一点 if(a_vertical> onThreshold) //what's the expression to set a time delay? { ui->rdo_btn_vertical->setStyleSheet(StyleSheetOn1); // On LED } else { ui->rdo_btn_vertical
if(a_vertical> onThreshold) //what's the expression to set a time delay?
{
ui->rdo_btn_vertical->setStyleSheet(StyleSheetOn1); // On LED
}
else
{
ui->rdo_btn_vertical->setStyleSheet(StyleSheetOff1); // Off LED
}
简单而愚蠢的解决方案是在单次激发模式下启动
QTimer
,并在检测脉冲时检查它是否正在运行(不应该运行)。“简单和愚蠢”并不意味着“好”。
根据信号的性质,过滤可能是一种可行的选择。信号“超过阈值”意味着什么?什么是“实时信号”?无论如何,在逻辑测试中没有合理的延时概念。请解释您想要实现的目标。如果信号在该秒内低于阈值,该怎么办但这会使您的UI在该时间内没有响应。您已经询问了出现问题的原因。你在那里接受的答案有什么问题?如果你有一个嘈杂的信号,比如电子信号,你的方法可能不会很好地工作。你可能没有检测到脉冲,但是检测到一个随机的尖峰,然后等待一秒钟,意外地把一个正脉冲当作一个负脉冲。这样:如何检查计时器是否正在运行?@SruthiDominic