2016-06-21 11 views
0

ラズベリーパイのMy Qt 5.5ベースのアプリケーションは、たとえばQDialogBoxを閉じた後にタッチスクリーンからマウスクリックを受信しなくなります。 USBマウスは正常に動作し続けます。Qt 5.5:ラズベリーパイのタッチスクリーンからマウスクリックを受信しなくなる

次の小さなアプリケーションでもこの問題が発生します。メインウィンドウにはQComboBoxという単一のウィンドウしか含まれていません。アプリケーションを起動したら、タッチスクリーン上のQComboBoxをクリックし、A、B、またはCを選択するのではなく、デスクトップをクリックして、選択が再び消えるようにします。この後、ウィジェットはタッチスクリーンからのマウスクリックをもう受信しません。 USBマウスでもう一度QComboBoxを選択すると、実際に2回クリックすることで、再びタッチスクリーンを使用できます。

私の主なアプリケーションでは、USBマウスを使用した「修復」の後、タッチスクリーンのクリックは、例えばQComboBoxの他の場所をクリックするだけで選択されます。マウスのボタンイベントを見ると、通常はMouseButtonPressMouseButtonReleaseがペアになります。これは2回のプレスとそれに続く2回のリリースです。タッチスクリーンをロックする直前に、奇数のMouseButtonPressイベントが連続して表示されます。 USBの「修復」の次には、奇数のMouseButtonReleaseイベントが連続して表示されます。 、QComboBoxを開くためにUSBマウスを使用して、デスクトップ上でクリックすると、再びそれを閉じると同様に自分自身を修復するために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.3.2を使用して、数週間QComboBoxと、この問題に対する私の頭を叩いてきたQt 5.5 - touchscreen-events only working in initial (first) window

答えて

0

に説明したのと同じ問題です。最終的には、コマンドラインでQtアプリケーションに '-nograb'を渡すとこの問題を回避できますが、それでも真の原因は見つかっていません。それがあなたのために働くことを望みます!

+0

「修正」が見つかったQtバグレポート:https://bugreports.qt.io/browse/QTBUG-33143 – murray

関連する問題