0

私は Qt Embedded を使用しており、いくつかのキーパッドを備えたボードを持っています。私は eventFilter を使用し、ウィジェットの QKeyEvent をチェックしますが、Qt が反応しないボタンは 2 つだけです。eventFilter は呼び出されません。コードは次のとおりです。

bool eventFilter(QObject* parent, QEvent* event)
{
  qDebug() << "entered";
  switch (event->type())
  {
    case QEvent::KeyPress:
    {
      QKeyEvent* key_event = qobject_cast<QKeyEvent*>(event);
      qDebug() << key_event->key();
    }
  }
}

しかし、物理キーは機能し、ドライバーも機能します。/dev/event2 から聞くことができます。

誰かがそれに苦労しましたか?ありがとう。

4

1 に答える 1

0

テストとして、アプリをインスタンス化する前に QWSServer::KeyboardFilter をインストールしてみてください。QWSServer がキーを取得しているかどうかを確認します。

そうでない場合は、QWS サーバーで使用されるキーマップを確認することをお勧めします (環境変数 QWS_KEYBOARD を調べます)。デフォルトの US キー マップと私の場​​合、カスタム gb.qmap はすべてのキーをマップしませんでした。

于 2014-05-01T19:36:15.263 に答える