Название: фигуры и их размер Отправлено: serega-5508 от Июнь 03, 2011, 20:06 У меня есть прямоугольник, квадрат, эллипс (QGraphicsRectItem, QGraphicsEllipseItem). При выделении их появляется область. Я хочу, сделать на углах квадратики, за которые можно понятуть и изменять размеры фигур. См.фото. Как это сделать??? Подскажите, пожалуйста, очень надо!
(http://231w.jpg) Название: Re: фигуры и их размер Отправлено: Zartul от Июнь 04, 2011, 20:54 советую обратить внимание на протектные виртуальные ф-и этих классов
Код
в первой и второй функциях следует определить какой был квадрат захвачен (первой функцией), либо произошло отпускание мыши (второй функцией) и квадрат не захвачен для того какой квадрат захвачен можно завести енум например Код
заводите переменную этого енума и меняете в первых двух ф-ях ну а третей функцией на основании выставленного значения этого енума производите изменение размера фигуры и вызываете перерисовку Название: Re: фигуры и их размер Отправлено: serega-5508 от Июнь 05, 2011, 01:04 как начертить квадратики по углам????
Название: Re: фигуры и их размер Отправлено: ufna от Июнь 05, 2011, 01:08 сделать собственный айтем, который "цепляется" на QGraphicsItem, и на основе его размеров "рисуется" где нужно квадратиками, за них же и двигается, меняя айтем "под собой".
Название: Re: фигуры и их размер Отправлено: serega-5508 от Июнь 05, 2011, 02:23 понял! помогите с вычислением координат, а то я что-то запутался, уже час сижу. а?
Название: Re: фигуры и их размер Отправлено: kambala от Июнь 05, 2011, 03:33 пускай p - центр эллипса, rh - горизонтальный радиус, rv - вертикальный радиус. тогда ограничивающий его прямоугольник: QRectF(p.x-rh, p.y-rv, 2*rh, 2*rv)
Название: Re: фигуры и их размер Отправлено: _OLEGator_ от Июнь 05, 2011, 19:38 Прямоугольная область в локальных координатах QGraphicsItem:
Код: QRectF QGraphicsItem::boundingRect () Рисовать эти манипуляторы нужно в переопределенной функции Код: void QGraphicsItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) В общем случае, для вычисления размеров произвольных фигур можно пользоваться Код: QRectF QPainterPath::boundingRect () Название: Re: фигуры и их размер Отправлено: serega-5508 от Июнь 05, 2011, 21:14 пробовал переопределять метод
Код: void QGraphicsItem::paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) Название: Re: фигуры и их размер Отправлено: _OLEGator_ от Июнь 06, 2011, 20:05 Должно все работать... Дай тогда на код посмотреть
|