Поэтому мне нужно создать приложение Qt (с графическим интерфейсом), которое выполняет команду «adb logcat» (это журнал, который генерируется до нажатия ^ c).
Мне нужна кнопка GUI, чтобы остановить процесс и передать вывод в текстовый браузер.
Вот код, который я использую для получения вывода QProcess:
QProcess process;
process.start("adb logcat");
process.waitForFinished(-1);
QByteArray logcatOut = process.readAllStandardOutput();
ui->devicesOutput->setText(logcatOut);
Спасибо
process.waitForFinished (-1);
будет препятствовать дальнейшему выполнению вашей программы, пока процесс «adb» не завершится.
Так что ваш графический интерфейс будет заморожен.
Вы должны определить процесс QProcess как переменную класса. Используйте QProcess
*процесс; вместо создания его в стеке. (Лучшая практика для всех производных QObject)
Объявите слот, который обрабатывает сигнал нажатия кнопки.
вызовите процесс-> terminate () в слоте.
использование QProcess :: прекратить остановить запуск приложения