QGraphicsRectItem 设置矩形边框颜色

在Qt中,QGraphicsRectItem本身并不直接提供设置边框颜色的功能。但是,你可以通过继承QGraphicsRectItemQGraphicsItem并重写其paint()方法来自定义矩形的绘制,包括边框颜色。

下面是一个简单的示例,展示了如何通过继承QGraphicsRectItem来设置矩形边框颜色:

 
#include <QGraphicsRectItem>  
#include <QPainter>  
  
class ColoredRectItem : public QGraphicsRectItem {  
public:  
    ColoredRectItem(const QRectF &rect, QGraphicsItem *parent = nullptr)  
        : QGraphicsRectItem(rect, parent) {  
        // 设置边框颜色  
        borderColor = Qt::red;  
    }  
  
    void setBorderColor(const QColor &color) {  
        borderColor = color;  
        update(); // 更新项以重绘  
    }  
  
protected:  
    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override {  
        QPen pen(borderColor);  
        pen.setWidth(2); // 设置边框宽度  
        painter->setPen(pen);  
        painter->setBrush(Qt::NoBrush); // 不填充矩形内部  
        painter->drawRect(rect()); // 绘制矩形边框  
    }  
  
private:  
    QColor borderColor;  
};

在这个示例中,ColoredRectItem类继承自QGraphicsRectItem。它有一个borderColor成员变量来存储边框颜色,并且提供了一个setBorderColor方法来设置这个颜色。在paint方法中,使用QPainter来绘制矩形边框,并设置笔的颜色和宽度。注意,rect()方法返回的是矩形的位置和大小,它在QGraphicsRectItem中定义。

要使用这个自定义的矩形项,你可以这样创建和添加到场景中:

 
QGraphicsScene *scene = new QGraphicsScene();  
ColoredRectItem *rectItem = new ColoredRectItem(QRectF(0, 0, 100, 100));  
scene->addItem(rectItem);  
rectItem->setBorderColor(Qt::blue); // 设置边框颜色为蓝色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值