Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: vitalka от Январь 14, 2011, 11:16



Название: Форма с ProgressBar
Отправлено: vitalka от Январь 14, 2011, 11:16
Сделал форму с ProgressBar, в обработчике кнопки выполняется обработка базы данных. Проблема вот в чем, когда данных не очень много все работает нормально, но когда обрабатывается большой объем данных перерисовка формы останавливается и ProgressBar не показывает изменения, хотя реально проценты считаются правильно, я их вижу через qDebug. Что можно сделать что бы форма перерисовывалась нормально в течении всего процесса работы с базой?


Название: Re: Форма с ProgressBar
Отправлено: GreatSnake от Январь 14, 2011, 11:20
Цитировать
...когда обрабатывается большой объем данных...
После QProgressBar::setValue() вызывай QApplication::processEvents().


Название: Re: Форма с ProgressBar
Отправлено: vitalka от Январь 14, 2011, 11:26
GreatSnake
Спасибо огромное, действительно помогло. А сам не подумал что так можно сделать, что только уже не перепробовал.


Название: Re: Форма с ProgressBar
Отправлено: RedDog от Январь 14, 2011, 12:17
А можно еще обработку данных делать в отдельной нити, тогда и прервать ее проще будет в реализации.


Название: Re: Форма с ProgressBar
Отправлено: _govorilka от Январь 14, 2011, 15:25
А можно еще обработку данных делать в отдельной нити, тогда и прервать ее проще будет в реализации.

Наверное в данном случае не можно, а нужно делать в отдельной нити...


Название: Re: Форма с ProgressBar
Отправлено: ieroglif от Январь 15, 2011, 00:25
выноси в отдельный тред