Название: Перерисовка окна Отправлено: klim от Января 27, 2009, 12:19 В программе есть операция, которая выполняется достаточно долго. Для того, чтобы пользователь мог контроллировать ход процесса, на форме предусмотрен ProgressBar.
Проблема заключается в том, что если окно сворачивается, а затем разворачиватся (maximize, restore), до окончания этой "длинной операции" окно не перерисовывается. Т.е. оно либо белое (чаще всего), либо там картинка последнего состояния (до сворачивания). Как это исправить? Название: Re: Перерисовка окна Отправлено: kuzulis от Января 27, 2009, 12:31 ну, операцию в отдельный поток наверное вынести
Название: Re: Перерисовка окна Отправлено: BaltikS от Января 27, 2009, 12:46 qApp->processEvents(); написать в кусках где что то выполняется
Название: Re: Перерисовка окна Отправлено: klim от Января 28, 2009, 00:03 qApp->processEvents(); написать в кусках где что то выполняется Посмотрел пример findfiles в assistant'е - не понял принцип действия. Просто внутри цикла нужно вызвать и всё?Название: Re: Перерисовка окна Отправлено: BaltikS от Января 28, 2009, 07:31 klim, если у тебя опреации в цикле происходят, то да - самы простой способ, ну можно пойти по более сложному пути и как написал kuzulis вынести операцию в отдельный поток(и).....смотря какая у тебя задача... У каждого способа есть свои "+" и "-"
Название: Re: Перерисовка окна Отправлено: klim от Января 28, 2009, 12:53 klim, если у тебя опреации в цикле происходят, то да - самы простой способ, ну можно пойти по более сложному пути и как написал kuzulis вынести операцию в отдельный поток(и).....смотря какая у тебя задача... У каждого способа есть свои "+" и "-" Понятно. Спасибо!Дописал в цикле qApp->ProcessEvents - скорость выполнения просто впечетляет. Раньше за минуту процентов 50 выполнялось, а теперь и 5-ти нет. Название: Re: Перерисовка окна Отправлено: pastor от Января 28, 2009, 12:56 Дописал в цикле qApp->ProcessEvents - скорость выполнения просто впечетляет. Раньше за минуту процентов 50 выполнялось, а теперь и 5-ти нет. В этом случае выполняйте qApp->ProcessEvents не на каждой итерации, а допустим через 50 итераций. Если этот вариант неподойдет - выносите в отдельный поток. Название: Re: Перерисовка окна Отправлено: Dendy от Января 28, 2009, 14:12 Код
|