При выводе текста потребляется много ресурсов |
Здравствуйте, гость ( Вход | Регистрация )
При выводе текста потребляется много ресурсов |
Командор |
7.3.2011, 12:56
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.3.2011 Пользователь №: 2478 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне нужно на виджете выводить текст, который регулярно меняется (либо по сигналам, либо по событиям). Текст вывожу через QPainter следующим образом:
При нажатии на любую клавишу на экране меняется текст. Если удерживать клавишу, то системный монитор показывает загрузку 20-25% (Windows 7, AMD 5000+). Но если раскомментировать таймер и рисование будет происходить по таймеру, то загрузка 5-7%. И вот не могу понять, почему при событиях от таймера, которых примерно также, как и при удерживании клавиши, загрузка меньше? Т.е. получается, что при событии от клавиатуры что-то тормозит. Ни у кого нет соображений? |
|
|
abc |
7.3.2011, 15:45
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
так 50 мс это намного реже, чем приход событий от клавиатуры, ставь 0 и наслаждайся тормозами ну, это моё предположение. почему не использовать QLabel для текстопляски?
|
|
|
Командор |
7.3.2011, 16:51
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.3.2011 Пользователь №: 2478 Спасибо сказали: 0 раз(а) Репутация: 0 |
так 50 мс это намного реже, чем приход событий от клавиатуры, ставь 0 и наслаждайся тормозами ну, это моё предположение. почему не использовать QLabel для текстопляски? Если переменную k обнулить в конструкторе, то у меня в секунду k набегает примерно на 1000, т.е. 30 раз выполняется repaint. Вообще, если количество элементов увеличить, то разница от событий по таймеру и клавиатуре уже никакая. Но загруз процессора большой. QLabel так же тормозит, только что проверил. Просто я хотел сделать быстрый виртуальный список, который отображает кусок больших данных в виде строк, а при нажатии вверх-вниз "сдвигает" текст, создавая иллюзию скроллинга. Но при таких скоростях лучше, наверное, просто использовать qscrollarea или представления. |
|
|
Алексей1153 |
9.3.2011, 7:58
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Командор, если текст показывается человеку, то нет смысла так часто обновлять, это же не анимация. Раз в 250...500 мс обновление экрана - сойдёт для этой цели. А накапливать нужно в буфере в ОЗУ, отображать же только видимую часть текста. Будет летать
|
|
|
Текстовая версия | Сейчас: 18.1.2025, 13:10 |