PDA

View Full Version : Qpainter draw line



waiter
22nd April 2013, 05:51
QLinearGradient lg = QLinearGradient(QPointF(0,0),QPointF(0,1));
lg.setCoordinateMode(QGradient::ObjectBoundingMode );
lg.setSpread(QGradient::PadSpread);
lg.setColorAt(0.0,QColor(0,0,0));
lg.setColorAt(1.0,QColor(100,0,100));
lg.setColorAt(0.5,QColor(0,255,0x7f));

QBrush brush = QBrush(lg);

QPainter painter(this);
painter.setBrush(brush);
QPen p;
p.setBrush(brush);
p.setWidth(2);
painter.setPen(p);
painter.drawLine(QPointF(400,400),QPointF(400,800) ); // @1
painter.drawLine(QPointF(400,400),QPointF(450,410) );
painter.drawLine(QPointF(400,400),QPointF(850,810) );
painter.drawLine(QPointF(400,400),QPointF(800,400) ); // @2

painter.drawRect(QRectF(0,100,300,100));

//why the line @1 and @2 is not the same looks like the other????

8976

wysota
22nd April 2013, 08:58
Because linear gradients have a direction so it matters whether something is drawn "along" or "across" a gradient.

waiter
26th April 2013, 09:17
I can't understant what is "across",how can I draw vertical line with the gradient?? thank you very much!
Because linear gradients have a direction so it matters whether something is drawn "along" or "across" a gradient.