/// /// floating message /// void FigurePainter::floatingMessage(PaintingContext& pc, const QString& message) { //create background pen QPen bpen(QColor(pc.backColor.red(), pc.backColor.green(), pc.backColor.blue(), pc.transparency), pc.lineWidth, pc.penStyle, pc.capStyle); QBrush brush(QColor(pc.backColor.red(), pc.backColor.green(), pc.backColor.blue(), pc.transparency)); //set canvas assert(pc.canvas); QPainter painter(pc.canvas); painter.setPen(bpen); painter.setBrush(brush); //paint rectangle painter.drawRect(pc.region); //create text pen QPen tpen(QColor(pc.textColor.red(), pc.textColor.green(), pc.textColor.blue(), 255/*pc.transparency*/), pc.lineWidth, pc.penStyle, pc.capStyle); //set canvas painter.setPen(tpen); //paint text painter.drawText(pc.region, Qt::AlignCenter, message); //end painter.end(); }
void QGVEdge::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) { painter->save(); QFont font = painter->font(); font.setPointSize(16); painter->setFont(font); if(isSelected()) { QPen tpen(_pen); tpen.setColor(_pen.color().darker(120)); tpen.setStyle(Qt::DotLine); painter->setPen(tpen); } else painter->setPen(_pen); painter->drawPath(_path); /* QRectF pp = _path.controlPointRect(); if(pp.width() < pp.height()) { painter->save(); painter->translate(_label_rect.topLeft()); painter->rotate(90); painter->drawText(QRectF(QPointF(0, -_label_rect.width()), _label_rect.size()), Qt::AlignCenter, _label); painter->restore(); } else */ painter->drawText(_label_rect, Qt::AlignCenter, _label); painter->setBrush(QBrush(_pen.color(), Qt::SolidPattern)); painter->drawPolygon(_head_arrow); painter->drawPolygon(_tail_arrow); painter->restore(); }