Название: Вопрос по QProcess Отправлено: ilunga от Май 12, 2009, 21:40 Поможите, пожалуйста.
Приложение должно запускать утилиту CABARC, которая распаковывает файлы в указанную директорию, нужно чтобы вывод утилиты отображался в QLabel. Проблема в том, что cabarc выводит в консоль несколько строк, но сигнал readyReadStandardOutput() испускается только один раз. Вот код: Код: arguments<<"-p"<<"x"<<"djvu.cab"<<path; как сделать, чтобы после каждой выведеной строчки посылался сигнал readyReadStandardOutput()? Название: Re: Вопрос по QProcess Отправлено: Dodge от Май 12, 2009, 22:20 на сколько я помню, сигнал эмитируется когда на стандартный вывод приходит перевод строки, могу ошибаться, но если это так, то ваша утилита последний перевод строки не шлет, в этом случае, скорее всего нужно просто проверять что накоплено в буфере в ручную, например по таймеру.
Название: Re: Вопрос по QProcess Отправлено: ilunga от Май 13, 2009, 21:42 Воспользовался таймером:
Код: ... Вывод отображается в QLabel, но спустя некоторое время после старта cabarc, и выводится не все. Создается впечатление, что главное приложение как бы подвисает , хотя GUI не замораживается ??? можно как-нибудь перенаправить вывод прямо в QLabel? Название: Re: Вопрос по QProcess Отправлено: Dodge от Май 14, 2009, 00:12 нет, как вы себе это представляете, перенаправить вывод в область памяти? 0_о
Я не представляю что в данном случае возвращает readLine, ибо в QProcess она не переопределена, а чтение происходит с двух пайпов. Рекомендую пользоваться: readAllStandardError() readAllStandardOutput() Название: Re: Вопрос по QProcess Отправлено: ilunga от Май 15, 2009, 00:01 Спасибо за советы, попробую реализовать.
|