一、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);