我正在SBC6000x板上开发Qt应用程序(Qt版本4.7.3)。我正在使用tslib触摸屏。
我有两个屏幕,两个按钮在同一位置。当点击(触摸)第一个屏幕上的按钮时,它会转到第二个屏幕。如果我双击第一个屏幕上的按钮,它会注册2个触摸事件。第一次触摸它会转到第二个屏幕,第二个触摸在第二个屏幕上处理,第三个屏幕显示。
所以双击第一个屏幕,我直接跳转到第三个屏幕。我想禁止第二次触摸。
这些是我尝试过的东西。
- 我在tslib中寻找改变debounce time,但无法获得足够的信息。
- 在第二个屏幕上禁用按钮,当屏幕加载时启用。
第二种方法的问题:我没有在运行时创建屏幕,我有一个屏幕数组。如果我在show()方法中启用按钮,我必须在某个地方禁用它们。我应该用什么方法禁用它们?
在显示第二屏幕时,我没有在第一屏幕上调用close()或hide(),我只调用show()到第二屏幕。所以我不能禁用closeEvent或hideEvent()中的按钮(因为我根本没有这些方法)
我该如何处理?欢迎任何帮助
您需要使用Qt的Event系统。它将允许你跟踪任何正在发生的事件(比如点击),并为你的自定义行为覆盖默认行为。它的范围很广,所以很难给你很多信息,但你可能需要看看它是如何处理来自鼠标事件的按钮点击的,因为没有特定的触摸事件。
当一个按钮被点击,而不是调用myScreen->show()
调用一个自定义方法,例如myScreen->showWithDelayedButton()
,它做的事情沿着行:
MyScreen::showWithDelayedButton() {
myButton->hide();
QTimer::singleShot(250, myButton, SLOT(show));
show();
}