Andrej Soloviev wrote:
> Роман wrote:
>
>> Andrej Soloviev wrote:
>>
>>
>>> Sergey B. Khvatov wrote:
>>>
>>>
>>> Еще один вариант - работа с модемом в отдельном процессе (запускается
>>> классом QProcess), а обмен с GUI через слот-сигнальный механизм. Этот
>>> вариант интересен тем, что процесс работы с модемом можно запустить на
>>> одном компе сетки, а управлять им через GUI, запущенный на другом (и
>>> даже в общем случае - через ИНТЕРНЕТ).
>>>
>>>
>> Так ведь GUI связан с модемом. Какой толк параллелить, если модем может
>> работать только с одним процессом. Т. е. запусакем через GUI один
>> процесс, а дальше все - ждем пока модем его обработает. Важно, чтобы
>> базовые элементы GUI, например, перерисовка работали.
>>
>>
> Так не будет перерисовки, пока Вы не вернете управление в главный
> событийный цикл (это тот, который запускается от app.exec(). И события
> обрабатываться тоже не будут, поэтому у Вас тот предложенный цикл по
> хвосту необработанных событий и зацикливался.
> Есть, правда, искусственный способ - через QProgressBarDialog, но вряд
> ли он Вас устроит.
>
Неправда. qApp->processEvents() приводит к обработке всех событий в
очереди. Ведь qApp - глобальная переменная. Во всяком случае - для
остальных элементов GUI, кроме QProgressBar обновление происходит нормально.
> А разделение блока работы с модемом и блока GUI на разные треды или
> процессы как раз и позволяет в блоке GUI быстро обработав событие или
> сигнал, вернуть управление в главный событийный цикл для обработки
> следующего элемента очереди событий (к которым, кстати, также относится
> перерисовка). Вот так, и никак иначе в третьем Qt не получится.
>
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 27630; Возраст листа: 1120; Участников: 1698
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/581754