Qt 的Graphics View框架

Graphics View 框架

一直一来,对Graphics View框架都没进行系统的学习和总结,今天就来梳理一下。

Graphics View框架提供基于图元的模型-视图编程,它包括三个主要的类:QGraphicsScene, QGraphicsView,
QGraphicsItem,分别是场景、视图和图元。一个场景可以通过多个视图表现,一个场景可以包括多个几何图形。
1、场景:
场景类完成如下功能:
* 提供管理大量图元的快速接口
* 传播事件给场景中的每个图元
* 管理图元状态,如选择和焦点处理
* 提供无变换的绘制功能,如打印
    场景是QGraphicsItem对象的容器,QGraphicsScene::addItem().图元可以通过多个函数进行检索:QGraphicsScene::items()
和一些重载函数可以返回和点、矩形、多边形或向量路径相交的所有图元,QGraphicsScene::itemAt()返回指定点的最顶层图元。
QGraphicsScene的事件传播体系结构将场景事件发送给图元,同时也管理图元之间的事件传播。如果场景接收到了在某一点的鼠标单击
事件,场景将会把事件传给在这一点的最顶层图元。QGraphicsScene负责管理一些图元的状态,如图元选择和焦点。通过
QGraphicsScene::setSelectionArea()选择图元,选择区域可以是任意形状,使用QPainterPath表示;得到当前选择的图元列表:
QGraphicsScene::selectedItems().QGraphicsScene::setFocusItem()或QGraphicsScene::setFocus()来设置图元的焦点;
获得当前具有焦点的图元:QGraphicsScene::focusItem();
    使用QGraphicsScene::render()在特定的绘图设备上绘制场景。
2、视图:
    QGraphicsView是视图窗口控件, 它使场景的内容可视化。可以连接几个视图到一个场景,也可以为相同的数据集提供几种不同的视口,
QGraphicsView是可滚动的窗口部件,如果需要使用OpenGL,使用QGrphicsView::setViewPort()将视口设置为QGLWidget。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值