Перерисовка окна и занятость процессора |
Здравствуйте, гость ( Вход | Регистрация )
Перерисовка окна и занятость процессора |
edwardoid |
25.7.2009, 22:48
Сообщение
#1
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема вот в чем. Работая с большими файлами моя программа занимает весь проц, это ИМХО нормалньо, что-то вроде кодирование/декодирование видео. Но из-за этого не отрисовывается допустим QProgressBar который есть в рограмме, не видно никаких изменнеий, сколько процентов сделано, сколько осталось. Как подобные проблемы решить?
|
|
|
MoPDoBoPoT |
25.7.2009, 23:32
Сообщение
#2
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
1. Вынести этот долговыполняющийся код в отдельный поток и высылать из него сигналы о работе главному потоку.
2. Периодически вызывать метод qApp->processEvents(); Имеется ввиду, что это альтернативные варианты. |
|
|
edwardoid |
25.7.2009, 23:32
Сообщение
#3
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
второе не понял, это второй вариант решения проблемы?
|
|
|
MoPDoBoPoT |
25.7.2009, 23:35
Сообщение
#4
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Да. Просто ответ отправил, а потом осознал, что скудновато описал. Это два возможных решения.
|
|
|
Litkevich Yuriy |
26.7.2009, 4:29
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
2. Периодически вызывать метод qApp->processEvents(); я тоже так делаю. Уменя из БД данные долго, почти поштучно выбираются в модели, поэтому я сигнал посылаю (он связан индикатором выполнения), а затем даю приложению события обработать (в том числе перерисовать и индикатор выполнения):
|
|
|
Текстовая версия | Сейчас: 5.12.2024, 6:21 |