Android — Qt / C ++: произвольно прерывать QProcess с помощью кнопки (имитировать ^ c)

Поэтому мне нужно создать приложение Qt (с графическим интерфейсом), которое выполняет команду «adb logcat» (это журнал, который генерируется до нажатия ^ c).
Мне нужна кнопка GUI, чтобы остановить процесс и передать вывод в текстовый браузер.
Вот код, который я использую для получения вывода QProcess:

QProcess process;
process.start("adb logcat");
process.waitForFinished(-1);
QByteArray logcatOut = process.readAllStandardOutput();
ui->devicesOutput->setText(logcatOut);

Спасибо

0

Решение

process.waitForFinished (-1);

будет препятствовать дальнейшему выполнению вашей программы, пока процесс «adb» не завершится.
Так что ваш графический интерфейс будет заморожен.

  1. Вы должны определить процесс QProcess как переменную класса. Используйте QProcess
    *процесс; вместо создания его в стеке. (Лучшая практика для всех производных QObject)

  2. Объявите слот, который обрабатывает сигнал нажатия кнопки.

  3. вызовите процесс-> terminate () в слоте.

0

Другие решения

использование QProcess :: прекратить остановить запуск приложения

0