Я создаю приложение Qt для Raspberry Pi, которое подключено к поворотному энкодеру. Когда пользователь нажимает кнопку поворотного кодера, приложение регистрирует аппаратное прерывание от кнопки и выдает сигнал, который приложение может перехватить.
Сложность состоит в том, что приложение имеет несколько windows, которые могут отображаться, и я хотел бы просто иметь функцию, которая преобразует сигнал нажатия кнопки в нажатие глобальной клавиши, которое может быть зарегистрировано любым активным окном в приложении, без необходимости добавления дополнительных лог c, чтобы определить, какое окно активно для отправки нажмите клавишу прямо к нему. Есть ли способ имитировать общесистемное нажатие клавиши, чтобы любое окно, находящееся в фокусе, получало его?
Пока у меня есть следующий фрагмент кода, хотя для него требуется ссылка на конкретный c QObject для направления нажатия клавиши на:
QKeyEvent *event = new QKeyEvent(QEvent::KeyPress, Qt::Key_Enter);
QCoreApplication::postEvent (receiver, event);
, где receiver
- это тоже объект для управления нажатием клавиши. Есть идеи?