Не генерирует некоторые ключи [QKeyEvent]

Я разрабатываю приложение, в котором у меня не будет доступа к системной клавиатуре (пишу под Debian). Именно для этой клавиатуры монитор подключен через RS232. Кнопки должны выдавать клавиши Tab, Backtab, стрелки и Enter. В классе основного диалога я излучаю сигналы соответствующих кнопок, т.е.

if (key == KEY_TAB)
{
    emit KeyPressTab ();
}

Этот сигнал фиксируется в различных диалоговых окнах с помощью вызова:

QObject :: connect (mainwindow, SIGNAL (KeyPressTab ()), this, SLOT (OnKeyPressTab ()));

В свою очередь, такой же функциональный слот имеет вид:

void SecondDialog :: OnKeyPressTab ()
{
    QKeyEvent event (QEvent :: KeyPress, Qt :: Key_Tab, Qt :: NoModifier);
    QApplication :: sendEvent (this, & event);
}

Таким образом, табуляция и BackTab работают без проблем, но стрелка и ввод не работают. Я использую тот же механизм, такой как:

------------------------------- ----------------- Main Window ------------
if (key == KEY_LEFT)
    emit KeyPressLeft ();

------------------------------- ----------------- Second Dialog-----------
QObject :: connect (mainwindow, SIGNAL (KeyPressLeft ()), this, SLOT (OnKeyPressLeft ()));

void SecondDialog:: OnKeyPressLeft ()
{
    QKeyEvent event (QEvent::KeyPress, Qt::Key_left, Qt::NoModifier);
    QApplication :: sendEvent (this, & event);
}

К сожалению, нет реакции.

Для пояснения я разместил алгоритм ниже.

0 ответов

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