【问题标题】:Qt Pushbutton must process the signal after a delayQt Pushbutton 必须在延迟后处理信号
【发布时间】:2023-12-30 22:36:01
【问题描述】:

我正在使用一个按钮来记录传入的麦克风声音信号。通常,信号在按下记录按钮后到达有点晚,我记录的输出在 10 毫秒之前包含零(之后我收到实际输出)。我正在使用下面的 QTimer 函数来设置延迟但是输出是一样的,

QTimer->singleShot(0.010, this, SLOT(onStartRecordPushButton))

是否有任何其他方法可以裁剪前 10 毫秒的信号或仅在非零信号到达时开始记录?谢谢

【问题讨论】:

  • 请看一下QTimer::singleShot():第一个参数的类型是int,预计时间以毫秒为单位。提供 0.010 意味着(在转换为 int 之后)您请求 0 毫秒 - 即返回事件循环后立即拍摄。您可能需要 10 10 毫秒。
  • 您还可以考虑QTimer doc。讲述Accuracy and Timer Resolution

标签: c++ qt5 signals-slots qtimer qt-slot


【解决方案1】:

QTimer::singleShot 将毫秒作为参数,而不是秒。 您的调用应该如下所示:

QTimer->singleShot(10, this, SLOT(onStartRecordPushButton))

【讨论】: