Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18

PyQt QPainter (Нет анимации)

16.10.2014, 21:48. Показов 2798. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно есть два массива (координаты по X и Y). Есть чекбокс, при нажатии на который должна запуститься анимация. Но все работает не так как задумано. При нажатии на чекбокс идет задержка (которая равна сумме sleep в циле), после которой отрисовывается только последняя точка.
Как можно реализовать анимацию, но без потоков и полигонов? Не нашел подобных примеров, нуждаюсь в вашей помощи.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def paintEvent(self, event = None):
 
        paint = QtGui.QPainter(self)
        paint.setPen(QtGui.QPen(QtCore.Qt.red, 3))
        if self.ch1.isChecked():
                self.animation(paint)
 
def animation(self, paint):
        for i in range(10):
            paint.eraseRect(0, 0, 1000, 1000)
            paint.drawPoint(self.px[i], self.py[i])
            self.update()
            time.sleep(0.1)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2014, 21:48
Ответы с готовыми решениями:

Разница между PyQT 5 и PyQT 6
Добрый день, форумчане. Прошел тут курс всеми вами любимого автора, познакомился с GUI TKinter, и по вашим советам решил освоить PyQT. ...

В режиме анимации нет ключей. Нет возможности добавить
Так же пустой нижний селектор(здесь он открыт, не у меня), который справа от кнопки автозаписи ключей. При попытке его открытия сообщение...

Нет анимации на кнопках
сделал кнопки UI все работало, прошел день кнопки просто не кликаются(нет анимации). Что делать ПМОГИТЕ!!!

10
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
17.10.2014, 08:28
Видимо, не успевает событие paint отработать.
Воспользуйтесь лучше стандартной анимацией - QVariantAnimation или QPropertyAnimation.
0
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18
17.10.2014, 09:10  [ТС]
dondublon, видел пример с QPropertyAnimation, но там анимировали item в который заносился стандартный элипс. А в моем случае это массив произовльных точек, причем массив значений X и отдельно массив Y-ов. Как анимировать такое?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
17.10.2014, 09:15
Сделайте точки итемами.
Либо через QVariantAnimation, обработка на valueChanged. Сам такое не делал, только с property работал.
0
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18
17.10.2014, 09:24  [ТС]
Думаю оставить этот способ на крайний случай, т.к. далек от QPropetryAnomation и QVariantAnimation. Хочется через QPainter сделать. Но не понятно почему задержка идет сразу по всем итерациям, после которой выполняются все итерации, но уже без задержки.

Добавлено через 4 минуты
Вообще в дальнейшем планируется анимация одной фигуры в другую, где будут известный координаты точек этих двух фигур. ПО формуле сделаю двумерный массив с промежуточными точками. И по логике, с помощью цикла я буду выводить точки сначала на одной итерации, потом на следаюющей, пока фигура 1 не станет фигурой 2. Но как я описал, у меня не вышло анимировать даже просто точку в QPainter'e
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
17.10.2014, 09:26
Я предложил сделать цивильно. Не хотите - не надо.
QVariantAnimation, кстати, умеет и линии анимировать.
0
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18
17.10.2014, 13:23  [ТС]
А кривые безье я смогу анимировать с QVariantAnimation?
Просто для меня это бездонный океан, в который походу придется все же нырнуть
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
17.10.2014, 13:46
QVariantAnimation, по видимому, обеспечивает вызов события, которые иначе вам бы пришлось делать с таймером.
Что именно будет анимироваться - это вы описываете вручную. Максимум из сложных типов - это QLine(F).
0
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18
17.10.2014, 14:33  [ТС]
dondublon, вас не затруднит написать пример кода, в котором перемещаются точки массива с помощью QVariantAnimation?
Или посоветовать литературу, ссылки, где это хорошо освещается. Пока нашел только http://srinikom.github.io/pysi... ation.html
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
17.10.2014, 14:38
Нет, не делал такого.
0
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18
17.10.2014, 15:10  [ТС]
Вопрос еще актуальный, может есть кто-то, кто сталкивался с этим или просто знает как помочь?

Добавлено через 6 минут
Возможно кто-то предложит решение через QTimer, но у меня не вышло с его помощью вывести хоть что-то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2014, 15:10
Помогаю со студенческими работами здесь

Bootstrap 5, нет анимации карусели
Решил изучить бутстрап, выбор пал на 5 альфа. Сделал карусель, все работает, но нет анимации в ЯБ и Хроме. В Pale moon, к слову, анимация...

QGraphicsItemAnimation - нет ли утечек памяти при закрытие главного окна во время анимации?
Привет, ну вот создаю я анимацию элемента QGraphicsScene... (перенёс в одну кучу для наглядности) QGraphicsScene* m_pGS; ...

Алгоритмы.Анимации. Написать прогу для изображения анимации
нужно чтобы она двигалась во все стороны. вот эта фигура

Прерывание анимации прыжка и вызов анимации удара
Решил добавить в игру простеньких анимаций. Добавил анимацию прыжка и заготовку анимации атаки. Но анимация атаки проигрывается после...

Проигрывание анимации после анимации
Добрый день форумчане. Ищу уже пару дней информацию, нигде не смог зайти, пошел во все тяжкие - сюда пишу. Суть в чем - есть сцена, на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru