Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Ещё вопросы и ответы из архива 4 (https://www.otvetnemail.ru/esh-voprosy-i-otvety-iz-arhiva-4-829/)
-   -   QProcess и waitForReadyRead для получения результатов из консольного приложения (https://www.otvetnemail.ru/esh-voprosy-i-otvety-iz-arhiva-4-829/qprocess-i-waitforreadyread-dlya-polucheniya-rezul-tatov-iz-konsol-nogo-prilozheniya-257833/)

Guest 28.09.2011 17:03

QProcess и waitForReadyRead для получения результатов из консольного приложения
 
Использую QProcess для запуска внешнего приложения Rar.exe и через readAllStandardOutput() получаю % текущей операции и вывожу его в QProgressBar.В общем код запуска приложения:Код:QProcess proc;proc.start(exeParam,paramList);whil e(proc.waitForReadyRead(-1)){int outPrecent=getPrecentFromOutput(proc.rea dAllStandardOutput());...}По запуске приложения rar.exe получаю переодически вывод и достаю % как и должжно быть.Я решил попробовать то же проделать с 7-zip для сжатия файлов. Достал консольную версию 7za.exeно в итоге waitForReadyRead() возвращает значения консоли только по завершении архивирования,при обращении к proc.readAllStandardOutput() с помощью таймера по средине операции функция возвращает пустой результат.Как прочитать вывод через QProcess чтобы всюду работало?Чем же могут отличятся консольные выводы этих программ? Может еще что-то надо задать в QProcess?


Часовой пояс GMT, время: 06:43.


© www.otvetnemail.ru - Форум вопросов и ответов.