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