Название: QProgressBar тормозит Отправлено: alex-v от Сентябрь 27, 2010, 16:34 даже в пустом коротком цикле - медленно бегут проценты...
Подскажите как это дело ускорить? Название: Re: QProgressBar тормозит Отправлено: crossly от Сентябрь 27, 2010, 16:36 что значит медленно ??:)
Название: Re: QProgressBar тормозит Отправлено: GreatSnake от Сентябрь 27, 2010, 16:38 QCoreApplication::processEvents() не забыли вызвать после QProgressBar::setValue()?
Название: Re: QProgressBar тормозит Отправлено: alex-v от Сентябрь 27, 2010, 17:24 QCoreApplication::processEvents() не забыли вызвать после QProgressBar::setValue()? не забыл.всёравно пустой цикл из 100 итераций - медленно происходит (т.к. должен мгновенно почти) Название: Re: QProgressBar тормозит Отправлено: Marat(Qt) от Сентябрь 27, 2010, 17:31 QCoreApplication::processEvents() не забыли вызвать после QProgressBar::setValue()? не забыл.всёравно пустой цикл из 100 итераций - медленно происходит (т.к. должен мгновенно почти) Название: Re: QProgressBar тормозит Отправлено: navrocky от Сентябрь 27, 2010, 19:28 Обычно делают такие оптимизации:
- зовут на каждую N-ую итерацию: Код
- или по времени: Код
Название: Re: QProgressBar тормозит Отправлено: alex-v от Сентябрь 27, 2010, 19:43 да, на счет подобной оптимизации тоже думал. Видимо надо что-то подобное реализовать...
только может так: ? Код: if (!(i % 10)) progress->setValue(i); Название: Re: QProgressBar тормозит Отправлено: Авварон от Сентябрь 27, 2010, 20:16 ну как бы processEvents достаточно медленная операция и вы тратите время впустую. Способы решения уже сказаны
Название: Re: QProgressBar тормозит Отправлено: Marat(Qt) от Сентябрь 27, 2010, 20:26 да, на счет подобной оптимизации тоже думал. Видимо надо что-то подобное реализовать... Скорее так:только может так: ? Код: if (!(i % 10)) progress->setValue(i); Код: if (!(i % 10)) {progress->setValue(i);processEvents();} Название: Re: QProgressBar тормозит Отправлено: Igors от Сентябрь 27, 2010, 20:42 Скорее так: Для немодального progress - да. А модальный сам позовет processEventsКод: if (!(i % 10)) {progress->setValue(i);processEvents();} Название: Re: QProgressBar тормозит Отправлено: navrocky от Сентябрь 27, 2010, 22:15 только может так: ? Код: if (!(i % 10)) progress->setValue(i); Да, конечно, я сморозил :D |