初学QT的Graphices view framework

本文介绍了初学者如何使用Qt的Graphics View Framework进行图形绘制,通过阅读《qt学习之路2》的贪吃蛇代码,理解了QGraphicsScene、QGraphicsView和QGraphicsItem的关系。QGraphicsItem作为基本元素,QGraphicsScene作为设计蓝图,QGraphicsView作为观察窗口。自定义Item需继承QGraphicsItem并重载相关函数来定义形状和行为。此外,还讨论了如何添加事件监听,通过创建专门的类进行事件控制。
摘要由CSDN通过智能技术生成

项目需要用Qt画波形,所以最近学习了Qt的graphics view framework,才看了一点,把暂时理解的内容记录一下。

主要的理解是通过豆子的《qt学习之路2》的贪吃蛇代码,链接如下:

http://www.devbean.net/2012/12/qt-study-road-2-snake-1/

------------------------------------------------------我是分割线-----------------------------------------------------------

1 graphics view framework的组成

主要有三部分:QGraphicsScene, QGraphicsView 和 QGraphicsItem

QGraphicsItem 相当于建筑用的材料

QGraphicsScene 相当于建筑用的图纸

QGraphicsView 相当于观察室

2 自定义Item

所有的Item都要继承自基类QGraphicsItem

自定义的Item要重载函数

QRectF boundingRect() const;

这个函数的作用就是定义以块长方形区域,用以决定Item可显示的范围


需要定义Item的形状时,要重载函数:

QPainterPath shape() const;

重载如下函数用以在每次刷新时重新绘制图形:

void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *);

其中关键语句如下:

painter->fillPath(shape(), Qt::yellow);

参数一是绘制时的形状,参数二是绘制用的笔刷


每次刷新时进行的动作由重载的如下函数决定:

void advance(int step)

其中step有两个值,当为0时,进行更新的准备,当为1是进行更新的动作。

3 添加事件

可以专门新建一个类负责事件控制

这个类的构造函数要以QGraphicsScene的指针为参数

然后在这个类中为Scene添加要控制的Item

重载如下函数进行时间监听:

bool eventFilter(QObject *object, QEvent *event)

在这个函数中调用自己写的控制函数就可以了


这个只是一个初步的认识,错误肯定不少

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值