201114阶段二qt自定义图元类
目录
- 一、学习的知识点
- 一)自定义视图、场景、图元类
- 一)1 创建类
- 一)2 图元类的实现
- 一)3 advance槽函数
- 一)3 collidingItems()碰撞检测函数
- 二、上课没有听懂或者没有理解的地方
- 三、当天学习的收获
一、学习的知识点
一)自定义视图、场景、图元类
一)1 创建类
自定义视图、场景、图元类时,先选择继承QObject基类,让系统自动生成QObject(自己写的会出现奇怪的错误),然后在生成的头文件把继承的QObject改成需要的,如QGraphicsView等等。
一)2 图元类的实现
自定义的图元类需要实现两个虚函数,分别是 :
- QRectF boundingRect() const; 碰撞检测,图元以图片中心为原点,需要返回图片的边框
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr); 重绘函数
- 重绘函数中的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,执行移动。
一)3 collidingItems()碰撞检测函数
图元的碰撞检测函数返回一个链表,当碰撞到时,链表中存入一个值,此时链表结点个数不等于0.
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
创建自定义的类时,要选择继承QObject基类,避免出现奇怪的问题。
201114阶段二qt自定义图元类相关推荐
- 201112阶段二qt图形视图框架
目录 一.学习的知识点 一)事件 二)图形视图框架 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 一)事件 鼠标事件的创建 组合键 二)图形视图框架 场景类:坐标系以中心为 ...
- qt自定义按钮类,每个按钮自带一个右键弹出框,如何使同一时刻只显示一个弹出框
提要 继承于QPushButton的自定义按钮类,其右键弹出一个弹框,创建多个这样的自定义按钮在窗口中,每一时刻只显示一个右键弹出框,避免同一时刻,多个按钮右键弹出弹出框后,未及时关闭弹出框导致的同一 ...
- 201105阶段二qt创建简单工程
目录 一.学习的知识点 qt的安装 qt项目 项目创建 项目例程 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 qt的安装 安装路径尽量不改,或者只修改盘符 https:/ ...
- 201110阶段二qt事件
目录 一.学习的知识点 事件 鼠标事件 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 双链表分别存放用户名和密码.优势:分开存放,安全性好.劣势:删除时容易崩溃. 出现未定 ...
- QGraphicsItem图元旋转缩放和自定义图元(三)
系列文章目录 QGraphicsItem图元的简单使用(一) QGraphicsItem图元拖动绘制(二) 文章目录 系列文章目录 前言 一.缩放和旋转 二.自定义图元 总结 前言 接上一章,图元绘制 ...
- Qt基于QGraphicsObject自定义图元并实现简单的动画
文章目录 Qt基于QGraphicsObject自定义图元并实现简单的动画 举例; Qt基于QGraphicsObject自定义图元并实现简单的动画 Qt 图形的绘制 可以是QPainter方法直接绘 ...
- Qt (高仿Visio)流程图组件开发(二) 基本图元绘制 图元间连线绘制
文章目录 本系列目录 前言 一.如何绘制图元 二.两图元之间如何连线 三.如何实现线跟随图元移动 四.线的位置判断 总结 本系列目录 Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框 ...
- Qt中的自定义模型类
文章目录 1 Qt中的通用模型类 1.1 Qt中的通用模型类 1.2 Qt中的变体类型QVariant 2 自定义模型类 2.1 自定义模型类设计分析 2.2 自定义模型类数据层.数据表示层.数据组织 ...
- 【Qt】Scene中获取指定类型的自定义图元
通过阅读 Qt 官方文档中的"Elastic Nodes Example"例子,学习到如何在场景(Scene)中获取某个类型的自定义图元. 官方Demo运行效果: 该文档中,作者自 ...
最新文章
- php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转
- 图像处理之霍夫变换(直线检測算法)
- zabbix监控超详细搭建过程
- 进程线程004 Windows线程切换的三种方式
- smem – Linux 内存监视软件
- ios14.3开发之使用纯代码创建UITabbarController
- F - 你这是第一次让我看到落泪了呢 POJ - 3661Running 区间DP
- html是一种用于创建网页的标准标记语言,html
- 基于Lumisoft.NET组件的POP3邮件接收和删除操作
- 5年赚50倍的段永平:这几家公司正在长长的坡上滚着厚厚的雪
- 【转】javascript判断浏览器是不是IE
- 从你的全世界路过-人到难处需放胆
- AD库转化为KiCad库(过程非常详细)
- 知识图谱构建技术综述
- 微信公众号支付功能开发
- 冲突域和广播域的区分
- Oracle Demo库默认用户/密码为什么叫Scott/Tigger?
- nagios 服务端与客户端监控安装与详细配置,各配置文件详解
- vertical-align和text-align的理解
- 优雅的使用Onedrive推送书籍到Kindle