Qt自定义矩形边界以获得柔和的3D效果

Qt自定义矩形边界以获得柔和的3D效果,qt,qt4,qt5,Qt,Qt4,Qt5,你能告诉我怎样才能用自定义的QGraphicsItem绘制有边界的矩形吗。我做了布局并画了矩形,但我的边界是普通的钢笔。请求你的帮助。谢谢 void QGraphicsTileItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { /// Draw

你能告诉我怎样才能用自定义的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 );
}

下面是一个来自QWidget的paintEvent示例。您应该能够使其适应您的绘制事件(您将使用绑定变量而不是“this”):


我不会画矩形。我会画两组线。照@Sosukodo说的做。[这][1]是我现在得到的,谢谢。但这并不是我想要达到的目标。有什么建议吗。[1] 这个解决方案很好,只需稍加调整。非常感谢你的帮助。
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();
}