码迷,mamicode.com
首页 > 其他好文 > 详细

Graphics View绘图架构(二)

时间:2019-10-20 01:21:37      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:hasfocus   添加   view   void   round   坐标转换   ali   去除   set   

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绘图架构(二)

标签:hasfocus   添加   view   void   round   坐标转换   ali   去除   set   

原文地址:https://www.cnblogs.com/AmyBKLP/p/11706412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!