201114阶段二qt自定义图元类

本文介绍了在QT中如何自定义视图、场景和图元类,包括创建类的步骤、图元类的实现细节,如boundingRect()和paint()函数的使用,以及advance槽函数和collidingItems()碰撞检测函数的工作原理。
摘要由CSDN通过智能技术生成

一、学习的知识点

一)自定义视图、场景、图元类

一)1 创建类

自定义视图、场景、图元类时,先选择继承QObject基类,让系统自动生成QObject(自己写的会出现奇怪的错误),然后在生成的头文件把继承的QObject改成需要的,如QGraphicsView等等。

一)2 图元类的实现

自定义的图元类需要实现两个虚函数,分别是 :

  1. QRectF boundingRect() const; 碰撞检测,图元以图片中心为原点,需要返回图片的边框
  2. void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr); 重绘函数
  3. 重绘函数中的drawPixmap需要五个参数
    painter->drawPixmap(0-image.width()/2,0-image.height()/2,image.width(),image.height(),image);

一)3 advance槽函数

advance槽函数在场景类和图元类都有,在利用场景类的对象调用advance函数时,会执行两次该场景中所有的图元项的advance函数,第一次调用时phase为0,告诉所有图元项即将移动,第二次phase为1,执行移动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值