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是所有图形类的基类
注意坐标映射