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\"");
}