Qt 图形视图框架(QGraphicsView, QGraphicsScene, QGraphicsItem)坐标系 | 您所在的位置:网站首页 › scene和view › Qt 图形视图框架(QGraphicsView, QGraphicsScene, QGraphicsItem)坐标系 |
1. QGraphicsView架构学习总结(1) - 知乎 (zhihu.com) 2. 如何认识Qt GraphicsView的坐标体系-百度经验 (baidu.com) 3. Qt中QGraphics类坐标映射关系详解 - cthu - 博客园 (cnblogs.com)
【笔记】: 1. 视图(view)、场景(scene)、图元(item)三者的坐标系: 1)视图坐标系与主窗体的逻辑坐标相同,以窗体左上角为原点(0,0),x 向右为正,y 向下为正。 2)场景坐标系以场景中心为原点。 setSceneRect 函数设置了视图中的场景坐标系某点到视图原点的映射,及场景尺寸。 3)图元坐标系以图元中心为原点。 3.1)QGraphicsItem::boundingRect 函数确定以图元原点为中心,图元的绘制范围: QRectF(-radius - penWidth / 2, -radius - penWidth / 2, diameter + penWidth, diameter + penWidth); 3.2)setPos 函数设置图元在场景中的位置(基于场景坐标系),pos 和 scenePos 函数返回图元位置(基于场景坐标系)。 4)默认情况: 4.1)默认图元原点与场景原点重合。 4.2)当场景(图元)尺寸小于视图尺寸时,默认场景原点(即中心)位于视图中心。 //4.3)当场景(图元)尺寸大于视图尺寸时,默认场景原点(即中心)位于视图中心。
2.1 用法示例1: 假设有一个200*200的图元,设置视图尺寸: view->resize(400, 400);设置场景坐标系某点(0, 0)到视图原点(0, 0)的映射,及场景尺寸: scene->setSceneRect(0, 0, 400, 400);设置图元原点位置: item->setPos(0, 0);
2.2 用法示例2: 假设有一个200*200的图元,设置视图尺寸:view->resize(400, 400);设置场景坐标系某点(-200, -200)到视图原点(0, 0)的映射,及场景尺寸:scene->setSceneRect(-200, -200, 400, 400);设置图元原点位置:item->setPos(0, 0); ![]() |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |