我正在SBC6000x主板上开发Qt应用程序(Qt版本4.7.3)。我使用tslib作为触摸屏。
我有2个屏幕,2个按钮位于同一位置。当点击(触摸)第一个屏幕上的按钮时,它进入第二个屏幕。如果我在第一个屏幕上双击按钮,它会记录2个触摸事件。第一次触摸时,它进入第二屏幕,第二次触摸在第二屏幕上处理,第三屏幕显示。
因此,在第一个屏幕上双击,我直接跳到第三个屏幕。我想禁止这第二次接触。
以下是我尝试的内容。
第二种方法的问题: 我没有在运行时创建屏幕,我有一系列屏幕。如果我在show()方法中启用按钮,我必须在某处禁用它们。我应该以什么方法禁用它们?
在显示第二个屏幕时,我没有在第一个屏幕上调用close()或hide(),我只调用show()到第二个屏幕。所以我无法禁用closeEvent或hideEvent()中的按钮(因为我根本没有这些方法)
我该如何处理?欢迎任何帮助。
答案 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();
}