Raspberry Pi上的基于Qt 5.5的应用程序在关闭QDialogBox
后停止从触摸屏接收鼠标点击。应该注意USB鼠标保持正常工作。
以下小型应用程序也会出现此问题。主窗口仅包含一个QComboBox
。启动应用程序后,单击触摸屏上的QComboBox
,而不是选择A,B或C,单击桌面以使选择再次消失。在此之后,小部件不再从触摸屏接收鼠标点击。如果我们再次使用USB鼠标选择QComboBox
,通过实际点击两次,我们可以再次使用触摸屏。
应该注意的是,在使用USB鼠标进行'修复'后的主要应用程序中,点击触摸屏只会选择QComboBox
,即使是其他地方点击也很难。如果我观看鼠标按钮事件,通常每个MouseButtonPress
和MouseButtonRelease
成对出现,即两次按下,然后是两次发布。在锁定触摸屏之前,我连续看到奇数个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 :(得分:0)
使用Qt版本5.3.2,我用QComboBox对这个问题进行了几周的讨论。我终于发现在命令行上将'-nograb'传递给你的Qt应用程序解决了这个问题,但仍然没有遇到真正的原因。希望它适合你!