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 не отображал все ключи.