Graphics View绘图架构

Posted amybklp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Graphics View绘图架构相关的知识,希望对你有一定的参考价值。

Graphics View结构的主要类包括:视图类QGraphicsView、场景类QGraphicsScene、和各种图形项类(基类都是 QGraphicsItem)

1. QGraphicsView 用于观察一个场景的物理窗口

  场景小于视图,整个场景在视图中可见;当场景大于视图时,试图自动提供卷滚条

  QGraphicsView的视口坐标等于显示设备的物理坐标,但是可以对QGraphicsView的坐标进行平移、旋转和缩放

  设置接口函数如下:

 

 

场景 void     setScene()  // 设置关联的场景
  void  setSceneRect()   //场景在视图中可视的部分的矩形区域
     
外观 void     setAlignment()  //设置场景在在视图中的对齐方式
  void     setBackgroundBrush()  
  void     setForegroundBrush()  
  void      setRenderHints( ) //设置绘图选项
     
交互 void setInteractive() 可交互
  QRect rubberBandRect 返回选择矩形框
  void setRubberBandSelectionMode() 选择模式
  QGraphicsItem *itemAt() 获取视图坐标系中 某个位置处的图形项
  QList<QGraphicsItem *> items() 获取场景中所有、或者某个选择区域内图形项的列表
坐标 QPoint        mapFormScene 将场景中的一个坐标转换为视图的坐标
映射 QPointF      mapToScene 将视图中的一个坐标转换为场景的坐标

 

2 QGraphicsScene 主要用于管理图形项的场景,是图形项的容器,有添加、删除图形项的函数,管理图形项的各种函数。

场景 void setSceneRect() set场景的矩形区
分组 QGraphicsItemGroup* createItemGroup() 创建图形项组
  void destroyItemGroup() 解除一个图形项组
输入焦点 QGraphicsItem * focusItem 返回当前获得焦点的图形项
  void clearFocus 去除选择焦点
  bool hasFocus 视图时否有焦点
图形项操作 void addItem() 添加一个已经创建的图形项
  void removeItem() 删除图形项
  void clear() 清除所有图形项
 

QGraphicesItem* mouseGrabberItem()

返回鼠标抓取的图形项
  QList<QGraphicsITEM *>selectedItems() 返回选择的图形项列表
  QGraphicsItem *itemAt() 获取某个位置处的顶层图形项
  QList<QGraphicsITEM *> items() 返回选择区域内图形项列表
     
     

 

3  QGraphicsItem是所有图形类的基类

注意坐标映射

技术图片

以上是关于Graphics View绘图架构的主要内容,如果未能解决你的问题,请参考以下文章

Android绘图使用 Graphics2D 实现动态效果

Android绘图使用 Graphics2D 实现动态效果

Java AWT 图形界面编程Canvas 组件中使用 Graphics 绘图 ② ( AWT 绘图步骤 | Graphics 绘图常用 API )

Java AWT 图形界面编程Canvas 组件中使用 Graphics 绘图 ② ( AWT 绘图步骤 | Graphics 绘图常用 API )

Graphics View Framework

Graphics View Framework