0

カスタム QGraphicsItem を使用して、このような境界線を持つ長方形を描画する方法を教えてください。レイアウトを作成して長方形を描画しましたが、長方形の境界は普通のペンです。助けを求めてください。ありがとう。

void QGraphicsTileItem::paint(QPainter *painter,
                              const QStyleOptionGraphicsItem *option,
                              QWidget *widget)
{
    /// Draw the rect
    painter->setRenderHints( QPainter::Antialiasing |
                             QPainter::TextAntialiasing |
                             QPainter::SmoothPixmapTransform |
                             QPainter::HighQualityAntialiasing, true );
    painter->setPen( pen );
    painter->setBrush( colour );
    painter->drawRect( bound );
    painter->drawText( bound, Qt::AlignLeft | Qt::AlignTop |
                       Qt::TextSingleLine, name );
}
4

1 に答える 1

2

QWidget からの paintEvent の例を次に示します。ペイントイベントに適応できるはずです(「this」の代わりにバインドされた変数を使用します):

void Button::paintEvent(QPaintEvent *e)
{
    QPainter paint;
    paint.begin(this);
    paint.setPen(Qt::white);
    paint.drawLine(0,0, this->width(), 0);
    paint.drawLine(0,0, 0, this->height());
    paint.setPen(Qt::black);
    paint.drawLine(0, this->height()-1, this->width()-1, this->height()-1);
    paint.drawLine(this->width()-1, 0, this->width()-1, this->height()-1);
    paint.end();
}
于 2013-03-17T08:10:22.073 に答える