Название: QGraphicsObject. Ошибка отрисовки Отправлено: Lenidoxll от Январь 19, 2021, 00:17 При анимировании итемов на сцене возникает интересный лаг: прямоугольник оставляет след, а вертикальная прямая, будто выходя за область отрисовки, оставляет свой конец неподвижным. К сожалению, понять, как сюда выкладывать картинки мне так и не удалось, поэтому вот ссылка на папку с фотографиями:
https://drive.google.com/drive/folders/18NO_BVtCff0J7ik67DP3LlIpQpsexy_y?usp=sharing Первое, что приходит на ум - двойная буферизация, но вроде как она реализована внутри самих виджитов, да и мерцания, в общем-то, у меня нет, так что вряд ли проблема в ней. Отмечу, что если, например, сделать прямоугольник поменьше или вообще убрать, то следов справа не остается и все двигается плавно и ровно. Кружочек с прямоугольником (и соответственно желтая и синяя прямые) реализованы отдельным классом, их отрисовкой занимается paint. Анимация происходит при срабатывании таймера, к сигналу которого подключен слот класса, унаследованного от QGraphicsView (на котором вся эта картина и происходит). Этот слот просто меняет позицию "особой точки" по х, после чего сдвигает класс прямоугольника, кружочка и двух прямых в новое положение особой точки (нижний конец правого черного отрезка, соединяющего кружочек в прямоугольничке с верхним кружочком, тоже соответственно смещается в новую позицию особой точки, создавая иллюзию единой конструкции). Как думаете, с чем могут быть связанные такие лаги? p.s.: видимо, скоро я стану одним из частых гостей форума Название: Re: QGraphicsObject. Ошибка отрисовки Отправлено: Lenidoxll от Январь 21, 2021, 11:54 В итоге все исправилось после указания в boundingRect больший размер отрисовки.
|