Торможения таймера при рисовании, Python |
Здравствуйте, гость ( Вход | Регистрация )
Торможения таймера при рисовании, Python |
zuze |
4.4.2013, 10:45
Сообщение
#11
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
lanz |
4.4.2013, 10:57
Сообщение
#12
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
1. Таймер в Qt. Python только вызывает функции.
2. А как были посчитаны эти 3 секунды? |
|
|
zuze |
4.4.2013, 11:11
Сообщение
#13
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
zuze |
5.4.2013, 13:46
Сообщение
#14
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как я понял, мой коде есть ряд ошибок:
1. Код не удовлетворяет модели "модель-представление-контроллер (Model-View-Controller, MVC)". Не совсем понимаю, как это сделать. 2. Я вызываю перерисовку всего окна по таймеру и жду следующей перерисовку от таймера. Наверно надо пересовывать, только следующий кусочек. 3. Возможно я не в той функции запускаю таймер. 4. В методе MyTimer ты в не зависимости от того активен self.checkBox или нет, проверяю phi на условие и в зависимости от результата меняю его. Это я поправил, вот так:
Помогите пожалуйста разобратся с ошибочками 1-3. |
|
|
lanz |
8.4.2013, 8:45
Сообщение
#15
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Цитата Код не удовлетворяет модели "модель-представление-контроллер (Model-View-Controller, MVC)". Не совсем понимаю, как это сделать. Это не ошибка сама по себе. Не любой код должен удовлетворять такой модели. http://ru.wikipedia.org/wiki/Model-View-Controller Цитата Я вызываю перерисовку всего окна по таймеру и жду следующей перерисовку от таймера. Наверно надо пересовывать, только следующий кусочек. Основные тормоза не от этого, а скорее всего, что картинка готовится каждый раз, когда надо ее вывести:
Этот код не зависит от phi, зачем он вызывается каждый раз при перерисовке? Цитата Возможно я не в той функции запускаю таймер. Не вижу проблемы. |
|
|
zuze |
8.4.2013, 8:54
Сообщение
#16
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Основные тормоза не от этого, а скорее всего, что картинка готовится каждый раз, когда надо ее вывести:
Если дело в этом коде, то он необходим, так как тут подготавливаеться картинка, через каждый промежуток времени. А заранее подготовить нельзя, так как в будущем будет не один цвет, а много разных картинок, которые будут менятся по таймеру. Не ужели для такой простой задачи в Python без потоков не обойтись? На всякий случай прикрепляю два фала ld.py и ld.ui лежащих в архиве ld.zip. Возможно они помогут решить проблему с торможением. Сообщение отредактировал zuze - 8.4.2013, 9:58
Прикрепленные файлы
|
|
|
zuze |
8.4.2013, 10:21
Сообщение
#17
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Решил проверить время выполнения кода.
Какие-то странные результаты, хотя я поставил таймер 5000 миллисекунд. А сами результаты такие: 0.836999893188 0.838999986649 0.837999820709 0.832000017166 0.836999893188 Сообщение отредактировал zuze - 8.4.2013, 10:21 |
|
|
lanz |
8.4.2013, 10:35
Сообщение
#18
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Все правильно, подготовка картинки занимает почти секунду.
Цитата Если дело в этом коде, то он необходим, так как тут подготавливаеться картинка, через каждый промежуток времени. Картинку необязательно готовить каждый кадр, можно ее готовить только когда возникнет необходимость в новой. |
|
|
zuze |
8.4.2013, 10:43
Сообщение
#19
|
Участник Группа: Участник Сообщений: 211 Регистрация: 4.11.2012 Пользователь №: 3589 Спасибо сказали: 0 раз(а) Репутация: 0 |
Картинку необязательно готовить каждый кадр, можно ее готовить только когда возникнет необходимость в новой. У меня необходимость постоянная в выводе картинок. Сначала берутся значения из двоичного файла и рисуеться картинка, через определённый промежуток времени. Затем рисуется картинка из второго файла, а первая картинка, как бы затираеться. Затем рисуеться картинка из третьего файла, а вторая картинка, как бы затираеться. Схема вывода картинок: _______________________________ |-----------------------|------------------------| |Первая картинка | Фон -----------------| |-----------------------|------------------------| _______________________________| ________________________________ |-----------------------|------------------------| |Вторая картинка | Первая картинка | |-----------------------|------------------------| _______________________________| _______________________________ |----------------------|-------------------------| |Третья картинка | Вторая картинка | |----------------------|------------------------| ______________________________| и так далее. Сообщение отредактировал zuze - 8.4.2013, 10:50 |
|
|
lanz |
8.4.2013, 10:51
Сообщение
#20
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Это все понятно, но картинка обновляется только когда начинает рисоваться новая, а не каждый шаг (по phi) отрисовки картинки.
|
|
|
Текстовая версия | Сейчас: 1.12.2024, 8:08 |