Qt二维绘图之改变Item的选中时的边框

void  RectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    QStyleOptionGraphicsItem op;
    op.initFrom(widget);

//     // 判断选中时,设置状态为 State_None
    if (option->state & QStyle::State_Selected){


        qreal itemPenWidth = 10;
        const qreal pad = itemPenWidth / 2;
        const qreal penWidth = 0;

        // 边框区域颜色
        QColor color = QColor(Qt::red);

        //绘制实现
        painter->setPen(QPen(color, penWidth, Qt::SolidLine));
        painter->setBrush(Qt::NoBrush);
        painter->drawRect(boundingRect().adjusted(pad, pad, -pad, -pad));

        // 绘制虚线
        painter->setPen(QPen(color, 0, Qt::DashLine));
        painter->setBrush(Qt::NoBrush);
        painter->drawRect(boundingRect().adjusted(pad, pad, -pad, -pad));
        qDebug() << "选中";
    }else{

    }

    //绘制图标,必须小于边框矩形
    painter->setRenderHint( QPainter::Antialiasing );
    painter->drawRect(m_x, m_y, m_w, m_h);



}

转载于:https://my.oschina.net/u/3919756/blog/1982186

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值