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.

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

1 ответ

Решение
void MainWindow::on_pushButton_clicked()
{
 system("xdotool key \"control+shift+r\"");
}
Другие вопросы по тегам