0

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

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

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

这是我尝试过的东西。

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

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

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

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

4

2 回答 2

0

You need to work with Qt's Event system. It'll allow you to track for whatever events are occurring (such as a tap) and override the default behaviour for your custom behaviour. It's pretty wide ranging so it's hard to give you a lot of information, but it's likely you need to look at how it's dealing with button clicks from mouse events as there's no touch specific ones.

于 2013-01-11T10:49:51.903 回答
0

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

MyScreen::showWithDelayedButton() {
    myButton->hide();
    QTimer::singleShot(250, myButton, SLOT(show));
    show();
}
于 2017-01-06T10:23:50.393 回答