Qt图形视图框架:图形形状图形项

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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值