Название: некорректная отрисовка на сцене Отправлено: k2rush от Декабрь 16, 2012, 19:11 Здравствуйте.
Рисую на сцене квадраты, в одном случае нужно получить ромб, соответственно использую setRotation(45); но при включении поворота, сцена, в большинстве случаев просто ничего не отрисовывает, иногда (1/100) появляется кривенький ромб, иногда просто случайные артефакты. Код: QRectF Painting::boundingRect() const Название: Re: некорректная отрисовка на сцене Отправлено: Dancing_on_water от Декабрь 17, 2012, 09:10 Чем занимается сцена? - Строит композицию item-ов, после чего вызывается paint.
Вы же вызываете setRotation в paint. Обычно это приводит в SegmentationFault, но может привести и к подобным результатам. Название: Re: некорректная отрисовка на сцене Отправлено: k2rush от Декабрь 17, 2012, 14:32 Спасибо!
До применения класса унаследованного от QGraphicsItem, при построении через scene->addRect(), действительно случались SegmentationFault-ы. Буду теперь знать. Хотя сейчас не совсем понимаю, где тогда поворачивать итем, только в нужном случае, надо посмотреть примеры. Название: Re: некорректная отрисовка на сцене Отправлено: Dancing_on_water от Декабрь 17, 2012, 15:47 Покажи код, где создается item.
Название: Re: некорректная отрисовка на сцене Отправлено: k2rush от Декабрь 17, 2012, 16:33 Спасибо за помощь, разобрался сам. код для поворота:
Код: paint = new Painting(current_pos, pointY, time_in,time_out,type, "sound/1.WAV"); Код: return QRectF(x,y,5,5); Код: QRectF(0,0,5,5); Но ещё вопрос вам. По идее каждый объект item-а индивидуален, если я его в цикле создаю много раз приложенным кодом, но поворачивать именно объект в нужных координатах кодом(конструктор Item-а): Код: Painting::Painting(int x, int y, int time_in, int time_out, int type, QString sound) Название: Re: некорректная отрисовка на сцене Отправлено: Dancing_on_water от Декабрь 17, 2012, 22:16 Не понял вопроса.
Ты в конструкторе создаешь item, повернутый на 45. Если у объекта есть потомки, то и они повернуться на 45, т.к. любое преобразование родителя преобразовывае и его потомков. Советую внимательно почитать доку по общей конструкции фреймворка QGraphics. А потом, не залезая в дебри поиграться с уже имеющимся набором item-ов. Чтоб прочувствовать и закрепить материал ;) |