Название: Qprocess+bash скрипт Отправлено: koldun90 от Май 12, 2017, 06:06 Здравствуйте вопрос.
Имею графическое приложение qt и запускаю посредством qprocess->execute(script.sh) bash скрипт который выполняет запись на диск с помощью wodim и genisoimage но во время того как выполняется данный скрипт виснет окно графической программы( сигналы readyread не приходят.Как можно сделать чтобы выполнялся скрипт , при этом он запускался в синхронном режиме чтобы отлавливались события в этом скрипте и испускались сигналы? Название: Re: Qprocess+bash скрипт Отправлено: Old от Май 12, 2017, 07:10 Здравствуйте вопрос. execute не блокирует запускающее приложение. Что там у вас после него выполняется? waitForFinished?Имею графическое приложение qt и запускаю посредством qprocess->execute(script.sh) bash скрипт который выполняет запись на диск с помощью wodim и genisoimage но во время того как выполняется данный скрипт виснет окно графической программы( сигналы readyread не приходят.Как можно сделать чтобы выполнялся скрипт , при этом он запускался в синхронном режиме чтобы отлавливались события в этом скрипте и испускались сигналы? Название: Re: Qprocess+bash скрипт Отправлено: koldun90 от Май 12, 2017, 08:06 Ну после выполнения скрипта открывается окно
Qwidget show, выполняется delete экземпляра qprocess... Суть в том что я немогу отловить сигналы qprocess Мне нужно чтобы при работе скрипта главное окно не висело. Но при этом мне не нужен асинхронный процесс . Так как мне нужно обязательно дождаться окончания записи на диск. Чтоб потом считать номер и сделать запись в бд. Название: Re: Qprocess+bash скрипт Отправлено: Old от Май 12, 2017, 09:04 Покажите, что вы вызываете после выполнения execute.
Название: Re: Qprocess+bash скрипт Отправлено: koldun90 от Май 12, 2017, 09:13 (http://www.picshare.ru/uploads/170512/M0Tl3EukHR_thumb.jpg) (http://www.picshare.ru/view/8083709/)
Название: Re: Qprocess+bash скрипт Отправлено: Пантер от Май 12, 2017, 10:33 1. Не надо код в картинках присылать.
2. Что за system? Что за sleep? Название: Re: Qprocess+bash скрипт Отправлено: koldun90 от Май 12, 2017, 10:39 sleep это задержка перед началом программы
В system запускается программа которая читает номер тома диска Название: Re: Qprocess+bash скрипт Отправлено: Пантер от Май 12, 2017, 10:45 Из-за sleep гуй зафризится. Зачем он вообще?
Зачем system, если есть QProcess? Не надо мешать вкучу разные подходы. Название: Re: Qprocess+bash скрипт Отправлено: koldun90 от Май 12, 2017, 11:24 sleep я уже убрал
А по поводу system он тут не причем... Это как бы отрабатывает другая программа Мне просто нужно чтобы когда я запустил скрипт записи у меня не подвисали бы гуевые окна в процессе записи... Название: Re: Qprocess+bash скрипт Отправлено: koldun90 от Май 12, 2017, 12:05 Вообщем протестировал с qprocess start и waitforfinished в итоге заметил что когда в скрипте выполняется cdrecord то тогда события не поступают
Название: Re: Qprocess+bash скрипт Отправлено: qate от Май 12, 2017, 19:23 (http://www.picshare.ru/uploads/170512/M0Tl3EukHR_thumb.jpg) (http://www.picshare.ru/view/8083709/) это просто пиздец Название: Re: Qprocess+bash скрипт Отправлено: Old от Май 12, 2017, 19:39 это просто пиздец Ну не копипастить-же в самом деле. :)Название: Re: Qprocess+bash скрипт Отправлено: koldun90 от Май 13, 2017, 11:05 смысл в том что я уже убрал sleep...
моя прога работает на 2 система на мсвс 5.7 основанной на редхате и астра линукс основанной на дебиане Так вот почему то когда на астре работает программа то gui не подвисает при вызове скрипта записи с использование метода qprocess::execute а вот в мсвс подвисание происходит во время работы скрипта записи правда в астре диски пишу genisoimage+wodim а в мсвс mkisofs+cdrecord |