触摸屏双击直接跳转到下一个屏幕



我正在SBC6000x板上开发Qt应用程序(Qt版本4.7.3)。我正在使用tslib触摸屏。

我有两个屏幕,两个按钮在同一位置。当点击(触摸)第一个屏幕上的按钮时,它会转到第二个屏幕。如果我双击第一个屏幕上的按钮,它会注册2个触摸事件。第一次触摸它会转到第二个屏幕,第二个触摸在第二个屏幕上处理,第三个屏幕显示。

所以双击第一个屏幕,我直接跳转到第三个屏幕。我想禁止第二次触摸。

这些是我尝试过的东西。

  1. 我在tslib中寻找改变debounce time,但无法获得足够的信息。
  2. 在第二个屏幕上禁用按钮,当屏幕加载时启用。

第二种方法的问题:我没有在运行时创建屏幕,我有一个屏幕数组。如果我在show()方法中启用按钮,我必须在某个地方禁用它们。我应该用什么方法禁用它们?

在显示第二屏幕时,我没有在第一屏幕上调用close()或hide(),我只调用show()到第二屏幕。所以我不能禁用closeEvent或hideEvent()中的按钮(因为我根本没有这些方法)

我该如何处理?欢迎任何帮助

您需要使用Qt的Event系统。它将允许你跟踪任何正在发生的事件(比如点击),并为你的自定义行为覆盖默认行为。它的范围很广,所以很难给你很多信息,但你可能需要看看它是如何处理来自鼠标事件的按钮点击的,因为没有特定的触摸事件。

当一个按钮被点击,而不是调用myScreen->show()调用一个自定义方法,例如myScreen->showWithDelayedButton(),它做的事情沿着行:

MyScreen::showWithDelayedButton() {
    myButton->hide();
    QTimer::singleShot(250, myButton, SLOT(show));
    show();
}

相关内容

最新更新