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

时间:2013-01-11 09:21:20

标签: c++ qt touch

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

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

因此,在第一个屏幕上双击,我直接跳到第三个屏幕。我想禁止这第二次接触。

以下是我尝试的内容。

  1. 我在tslib中寻找改变的去抖时间,但无法获得足够的信息。
  2. 禁用第二个屏幕上的按钮,在屏幕加载时启用它们。
  3. 第二种方法的问题:    我没有在运行时创建屏幕,我有一系列屏幕。如果我在show()方法中启用按钮,我必须在某处禁用它们。我应该以什么方法禁用它们?

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

单击按钮时,不是调用myScreen->show(),而是调用自定义方法,例如myScreen->showWithDelayedButton(),它会执行以下操作:

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