qt 继承QGraphicsItem

本文介绍了在QT中如何通过继承QGraphicsItem来自定义图形元素,包括重写boundingRect()以定义边界矩形,paint()来实现具体绘制,shape()用于碰撞检测的QPainterPath,以及type()用于区分不同类型的子类。这些函数使得开发者能够创建出满足特定需求的复杂图形组件。
摘要由CSDN通过智能技术生成
qt提供的基本图元QGraphicsLineItem、QGraphicsTextItem、QGraphicsPixmapItem、QGraphicsPathItem等有时候并不能满足所有要求,因而在程序中通常继承QGraphicsItem或者其更具体的子类,自定义所需要的图元。继承QGraphcisItem,一般需要重写的成员函数有:
1)virtual QRectF boundingRect() const
       此函数将一个图元的边界定义为了一个矩形区域,图元的绘制范围也局限在这个矩形区域之内,同时,QGraphicsView也利用这个区域范围来决定图元是否需要重绘。图元的形状可以是任意的(如矩形、圆形、多边形等),但是边界区域总是矩形,它不会随图元的各种转换而改变。需要注意的是,通常在画边界的区域的时候要包含进半个画笔的宽度进来。如下API例子:
QRectF CircleItem::boundingRect() const
 {
     qreal penWidth = 1;
     return QRectF(-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值