Qt встраивает процессы не во все ключи

Я использую Qt Embedded и у меня есть доска с клавиатурой. Я использую eventFilter и проверяю QKeyEvent для своего виджета, но только для двух кнопок Qt не реагирует на. 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.

Кто-нибудь боролся с этим? Благодарю.

1 ответ

Решение

В качестве теста вы можете попробовать установить QWSServer::KeyboardFilter перед созданием экземпляра приложения. И посмотрите, получает ли ключ QWSServer.

Если нет, то я бы посоветовал взглянуть на раскладку ключей, используемую сервером QWS (найдите переменную среды QWS_KEYBOARD). И карта ключей США по умолчанию, и в моем случае пользовательский файл gb.qmap не отображал все ключи.

Другие вопросы по тегам