зависание программы написанной на Qt |
Здравствуйте, гость ( Вход | Регистрация )
зависание программы написанной на Qt |
eldar85 |
17.3.2010, 23:20
Сообщение
#1
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
столкнулся со странной проблемой, написал программу, отлично все работает, но если она выполняет процесс и по окну ткнешь мышью, окно зависает и пишет что программа не отвечает, но действие все же она свое доделывает до конца, потому как после окончания выполнения процесса она выдает конечный результат и окно стает опять активным) хотелось бы понять почему так происходит, ниужели чтобы программа работала без зависания я не могу даже просто свернуть окошко проги?
может какие то ошибки наделал, очень нужен совет мастеров Qt) |
|
|
eldar85 |
18.3.2010, 3:09
Сообщение
#2
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
да процесс на самом деле долгий и обрабатывать событие я пока не умею))
у меня идет процесс в цикле for. for находиться в слоте, получается я нажимаю кнопку и запускается этот цикл, он работает с сетью, он может повториться и сто и 1000 раз, это может занимать от нескольких секунд, до пары минут и в это время окно лучше не трогать, а то зависает))) а это вызов void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents ) [static] нужно делать в этом самом цикле for или где то отдельно? я еще новичек просто в кьюти, поэтому сложно догадаться сразу что и куда) спасибо что откликаетесь) Сообщение отредактировал eldar85 - 18.3.2010, 4:59 |
|
|
maint |
18.3.2010, 5:14
Сообщение
#3
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
да процесс на самом деле долгий и обрабатывать событие я пока не умею)) у меня идет процесс в цикле for. for находиться в слоте, получается я нажимаю кнопку и запускается этот цикл, он работает с сетью, он может повториться и сто и 1000 раз, это может занимать от нескольких секунд, до пары минут и в это время окно лучше не трогать, а то зависает))) а это вызов void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents ) [static] нужно делать в этом самом цикле for или где то отдельно? я еще новичек просто в кьюти, поэтому сложно догадаться сразу что и куда) спасибо что откликаетесь) можно еще внутри цикла рисовать qApp->processEvents();. И не проблема это qt, а любого языка (среды). На первом курсе преподают |
|
|
Текстовая версия | Сейчас: 19.12.2024, 8:11 |