Qt имитирует нажатие клавиши для управления приложением SimpleScreenRecorder в Linux

Я хочу (в Linux) управлять записью рабочего стола, активировав SimpleScreenRecorder с эмуляцией нажатия клавиш CTRL+SHIFT+R.

изображение SimpleScreenRecorder

Я пробовал этот код:

QKeyEvent * eve1 = new QKeyEvent (QEvent::KeyPress,Qt::Key_R,Qt::ControlModifier|Qt::ShiftModifier,"r");
qApp->postEvent ((QObject*)this, (QEvent *)eve1);
QKeyEvent * eve2 = new QKeyEvent (QEvent::KeyRelease,Qt::Key_R,Qt::ShiftModifier|Qt::ControlModifier,"r");
qApp->postEvent ((QObject*)this, (QEvent *)eve2);

Но это не работает. Я могу отправить событие нажатия клавиши в ui->lineEdit, но не могу отправить его в другое работающее приложение, в данном случае SimpleScreenRecorder.

Как я могу решить эту проблему? Спасибо.


person Vlado    schedule 08.03.2018    source источник