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