一、QAbstractGraphicsShapeItem
1.1、描述
形状图形项的抽象类,没有实现boundingRect()和paint()。
1.2、成员函数
1、void setBrush(const QBrush &brush)
设置形状图形项的笔刷。如果使用带有QGradient的画笔,则渐变是相对于图形项的坐标系的。
2、void setPen(const QPen &pen)
设置描绘系统图形项轮廓的画笔。
二、QGraphicsRectItem
2.1、描述
矩形图形项。
2.2、成员函数
1、void setRect(const QRectF &rectangle) /QRectF rect()
设置/获取矩形区域。
2、void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
非常简单的实现,绘制矩形,选中时绘制高亮边框:
三、QGraphicsEllipseItem
3.1、描述
椭圆图形项,也可以设置为扇形。
3.2、成员函数
1、void setRect(const QRectF &rect)
椭圆的外接矩形。
2、void setSpanAngle(int angle)
设置扇形的跨度。
3、void setStartAngle(int angle)
设置扇形的开始角度。
QGraphicsEllipseItem * item = new QGraphicsEllipseItem(30,30,400,200);item->setFlags(QGraphicsItem::ItemIsMovable|QGraphicsItem::ItemIsSelectable);item->setBrush(Qt::cyan);gphs->addItem(item);
QGraphicsEllipseItem * item = new QGraphicsEllipseItem(30,30,400,200);item->setFlags(QGraphicsItem::ItemIsMovable|QGraphicsItem::ItemIsSelectable);item->setBrush(Qt::cyan);item->setStartAngle(30 * 16);item->setSpanAngle(90 * 16);gphs->addItem(item);
四、QGraphicsPolygonItem
4.1、描述
多边形图形项。
QPolygonF p;p<<QPointF(30,100)<<QPointF(20,300)<<QPointF(60,0);QGraphicsPolygonItem * item = new QGraphicsPolygonItem(p);item->setBrush(Qt::cyan);item->setFlags(QGraphicsItem::ItemIsMovable|QGraphicsItem::ItemIsSelectable);gphs->addItem(item);
五、QGraphicsPathItem
5.1、描述
路径图形项。
QPainterPath p;p.lineTo(30,0);p.addEllipse(30,-30,30,60);p.addRect(-30,-30,30,60);p.addText(QPointF(60,60),QFont("微软雅黑",30),"黄河之水天上来,奔流到海不复回");QGraphicsPathItem * item = new QGraphicsPathItem(p);item->setFlags(QGraphicsItem::ItemIsMovable|QGraphicsItem::ItemIsSelectable);gphs->addItem(item);
六、QGraphicsSimpleTextItem
6.1、描述
简单的文本路径图形项。
QGraphicsSimpleTextItem * item = new QGraphicsSimpleTextItem("黄河之水天上来");item->setBrush(Qt::cyan);QPen pen;pen.setWidth(1);pen.setColor(Qt::red);item->setPen(pen);item->setFont(QFont("微软雅黑",40));item->setFlags(QGraphicsItem::ItemIsMovable|QGraphicsItem::ItemIsSelectable);gphs->addItem(item);