///
/// 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();
}
Esempio n. 2
0
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();
}