2016-06-21 23 views
0

在Raspberry Pi上,基于Qt 5.5的应用程序停止接收来自触摸屏的鼠标点击,例如关闭QDialogBox后停止。应该指出的是,USB鼠标保持正常工作。Qt 5.5:应用程序停止从Raspberry Pi的触摸屏接收鼠标点击

以下小应用程序也会出现此问题。主窗口仅包含一个QComboBox。启动应用程序后,在触摸屏上单击QComboBox,然后单击桌面上的选择,而不是选择A,B或C,以使选择再次消失。在此之后,小部件不再从触摸屏接收到鼠标点击。如果我们再次使用USB鼠标选择QComboBox,通过实际点击两次,我们可以再次使用触摸屏。

应该指出,在我的主要应用程序后,用USB鼠标'修复'点击触摸屏将只选择例如QComboBox即使艰难我点击其他地方。如果我观察鼠标按钮事件,通常每个MouseButtonPressMouseButtonRelease都是成对出现的,即两个印刷机后跟两个版本。在锁定触摸屏之前,我会连续看到奇数个MouseButtonPress事件。接下来的USB修复会连续展示一个奇数的MouseButtonRelease事件。

还要注意的是使用USB鼠标打开QComboBox然后通过单击桌面上的再次关闭它,将需要从USB鼠标点击自我修复为好。但USB鼠标会自行修复。

我们应该如何避免触摸屏被禁用?

文件:Bug.pro

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = Bug 
TEMPLATE = app 

SOURCES += main.cpp MainWindow.cpp 
HEADERS += MainWindow.h 

文件:main.cpp

#include <QApplication> 
#include "MainWindow.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    MainWindow w; 
    w.show(); 
    return a.exec(); 
} 

文件:MainWindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 
public: 
    MainWindow(QWidget * parent = 0); 
}; 

#endif /* MAINWINDOW_H */ 

文件:MainWindow.cpp

#include <QComboBox> 
#include "MainWindow.h" 

MainWindow::MainWindow(QWidget * parent) : QMainWindow(parent) 
{ 
    QComboBox * bx = new QComboBox(this); 
    bx->addItem("A"); 
    bx->addItem("B"); 
    bx->addItem("C"); 
    setCentralWidget(bx); 
} 

根据evtest,触摸屏使用FT5406 memory based driver。我正在使用Element14的7英寸触摸屏。当然,我可能没有安装正确的驱动程序,所以如果您需要更多关于已安装软件包的信息,请告诉我,我会将其添加到问题中。

P.S:这可能是因为在Qt 5.5 - touchscreen-events only working in initial (first) window

回答

0

说明我一直在敲我的头靠在就此问题与QComboBox的使用Qt版本5.3.2几周同样的问题。我终于发现,在命令行上传递'-nograb'到你的Qt应用程序可以解决这个问题,但仍然没有遇到真正的原因。希望对你有帮助!

+0

Qt错误报告,我发现“修复”:https://bugreports.qt.io/browse/QTBUG-33143 – murray

相关问题