09 2023 档案
摘要:本文转载大神作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820. 简述 在图形视图框架中,QGraphicsScene 提供一个快速的接口,用于管理大量 item,QGraphicsItem 是场景中 item 的基类。 图形视图提供了一些典型形状的标
阅读全文
摘要:接着上一章的部分,本章介绍图形视图框架中的视图和场景部分,三者关系本章就不再讲了,请参考上一章内容 一 场景(QGaphicsScene) QGraphicsScene提供了图形视图框架的场景,它有以下功能: 我们新建一个空工程,代码如下: #include <QApplication> #incl
阅读全文
摘要:话不多说先看程序的效果图: 这个也算是一个基础的制作,下面带大家来看看如合制作吧。 首先,从QGraphicsView 类继承定义一个图形视图类 QWGraphicsView 。 qwgraphicsview.h #ifndef QWGRAPHICSVIEW_H #define QWGRAPHICS
阅读全文
摘要:文章目录图形视图框架的组成图形视图框架的坐标系Item坐标系Scene坐标系View坐标系图形视图框架的坐标原点使用组合对象图元坐标变换 在设计静态用户交互界面的时候常见的QWidget控件已经够用了。但是如果用户想同时使用多个自绘控件并与其进行交互,常见的静态控件实现起来就比较困难了。比如在一些平
阅读全文
摘要:Qt 图形视图框架<三>——<坐标系统> 一 基础知识 图形视图框架是基于笛卡尔坐标系统的,一个图形项在场景中的位置和几何形状由x坐标和y坐标来表示。当使用一个没有变换的视图来观察场景时,场景中的一个单元代表屏幕上的一个像素。图形视图框架的三个坐标系分别是视图坐标系、场景坐标系和图元坐标系。三个坐标
阅读全文
摘要:Graphics View中有三个坐标系统,即场景坐标、视图坐标、图形项坐标。 场景坐标场景坐标等价于QPainter的逻辑坐标,一般以场景中心为原点;视图坐标与设备坐标相同,是物理坐标,默认为左上角为原点;图形项的坐标是局部逻辑坐标,一般以图形项的中心为原点。 一个图形项的位置是其中心点在父坐标中
阅读全文
摘要:1、Item(图元)坐标:属于局部坐标,通常以图元中心为原点(中心对称),非中心对称类,比如dialog类,一般以左上角为原点,正方向x朝右,y朝下。 2、setPos的坐标是父类坐标系的坐标,一般对于item位于scene中的应用场景。 3、scene(场景)坐标:属于逻辑坐标 logical c
阅读全文
摘要:QGraphicsView是QT支持的一套图元显示框架。最近在开发过程中发现一个问题,在QGraphicsView父类(QWidget)中重载mousePressEvent和 mouseMoveEvent事件,只能获取到mousePress事件,mouseMove事件不论如何都获取不到,测试代码如下
阅读全文
摘要:全文链接:http://www.fearlazy.com/index.php/post/111.html Qt为我们提供的图形视图框架真的是非常好用,它通过分解出视图、场景和图元降低了我们绘制图形的难度。它提供了强大图元控制能力,如快速查找图元、检测图元位置、检测图元碰撞等。除此以外图形视图框架还有
阅读全文
摘要:一、简介 GraphicsView支持事件传播体系结构,可以使图元在场景scene中得到提高了已被的精确交互能力。图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景给相应的图形项。 对于键盘鼠标事件,scene会传递给获得焦点的图形项。如果场景没有获得焦点,那键盘事件会丢弃;如果调
阅读全文
摘要:概念相关Qt的2D变换中有 逻辑坐标(窗口) 和 物理坐标(视口) 划重点: 窗口(逻辑坐标)与视口(物理坐标)的关系:窗口的四个角会映射到视口的四个角,它们四个角之间一一对应,两者的比例是 1:1。它们默认的状态下,逻辑坐标和物理坐标都是一一对应的,起始点都是(0,0),长度高度也一致即两者重合,
阅读全文
摘要:窗口坐标为逻辑坐标,是基于视口坐标系的。 视口坐标为物理坐标,是基于绘图设备坐标系的 窗口坐标始终以视口坐标为最终目标进行映射: QPainter::setWindow 修改了窗口位置和大小(左上角重新定义了一个数值和长度) QPainter::setViewport 修改了视口位置和像素个数(左上
阅读全文
摘要:一直不太了解这两者的关系,尽看过了许多网上的文章,都觉得复杂不能理解。今天亲自反复实验,得出结论。现以自己的视角来分析此问题: 定义: 绘图设备:这里指Widget。 绘图设备尺寸:这里指widget.size(),以widget的可绘制区左上角为原点。 核心代码和描述如下: 第一步: 第二步: 第
阅读全文
摘要:没有复杂的变换,简单转化窗口坐标系,即可按我们正常熟知的坐标系进行绘图 QPainter坐标系以左上角为原点,如下图 在这样的坐标系下绘图,位置这是倒过来的 QPainter m_pPainter(this); m_pPainter.setBrush(Qt::yellow); m_pPainter.
阅读全文
摘要:小谈Qt的坐标系系统 Qt中有三个坐标系 设备坐标系 窗口坐标系 逻辑坐标系 设备坐标系: 即Device坐标系。也是物理坐标系。即真实的的物理坐标系。 逻辑坐标系: 即用户坐标系。也就是说日常大家使用Qt的时候的坐标系。 窗口坐标系: 这个坐标系是QPainter设置setWindow以后的一个坐
阅读全文
摘要:先看助手说明: 1.QPainter的viewport()与window()分别代表着物理坐标与逻辑坐标区域,默认两个区域是重合的,也就是用户指定的rect区域在两者上是同样的大小、位置。 2.setWindow()可以设置你想指定的rect区域,比如rect=(-50,-50,100,100),此
阅读全文
摘要:目录 一、引言 二、QT坐标系与绘图总结 三、自定义逻辑坐标系 四、自定义物理坐标系 一、引言 看了参考博客中关于QT窗口和视口的理解,获益非浅,在此做个总结和补充。 二、QT坐标系与绘图总结 QT中的painter绘制在逻辑坐标系中(该坐标系是我们自定义的,通过setWindow(int x,in
阅读全文
摘要:一、参考资料 1、Coordinate System Qt官方文档 2、小谈Qt的坐标系系统 - 3个坐标系,2个变换 - 知乎 (zhihu.com) 3、提示:第二部分为官方文档,第三部分为精通。如果您只想理解坐标系之间的转换,请移步第三部分。如果需要一些更加详细的内容,请仔细研读第二部分。 二
阅读全文