Название: Как вызвать QDialog в новом потоке? Отправлено: Jkc от Декабрь 20, 2006, 11:50 Есть программа, во время исключения должно появляться диалоговое окно где пользователь должен сделать выбор, при этом до выбора основной поток должен приостановить работу. Я думал сделать вызов окна в новом потоке и в нем же сделать обработку данных из этого окна , но при вызове у меня виснет вся программа, кто знает как это сделать буду очень благодарен.
Название: Как вызвать QDialog в новом потоке? Отправлено: Dendy от Декабрь 20, 2006, 11:57 Диалог можно создать и запустить только в основном потоке, следовательно его нельзя останавливать. Можно запустить дополнительньІй цикл обработки собьІтий. При етом программа остановится на точке до закрьІтия локального цикла.
Код: catch ( ... ) Название: Как вызвать QDialog в новом потоке? Отправлено: Jkc от Декабрь 20, 2006, 12:37 хорошо а как можно запустить цикл обработки событий что бы не тормозилась программа? Т.е. что бы программа подождала с выполнением задачи.
Название: Как вызвать QDialog в новом потоке? Отправлено: Dendy от Декабрь 20, 2006, 12:59 Собственно, как в приведённом вьІше примере. Диалог создаёт собственньІй цикл обработки собьІтий. В стеке накапливаются вьІзовьІ внутреннего цикла и работа программьІ прерьІвается до остановки цикла. Но есть грабли - собьІтия будут обрабатьІваться для других обьектов. Замораживать такие собьІтия нужно вручную, насколько я понимаю.
Название: Как вызвать QDialog в новом потоке? Отправлено: Jkc от Декабрь 20, 2006, 13:37 есть пример цикла обработки событий?
Название: Как вызвать QDialog в новом потоке? Отправлено: Dendy от Декабрь 20, 2006, 14:54 Код: QEventLoop loop; Код: QEventLoop loop; |