Qt QPainter中关于坐标的注意事项

Posted 卖杏花的陆游

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt QPainter中关于坐标的注意事项相关的知识,希望对你有一定的参考价值。

一、QPainter需要注意的是有一个物理坐标,视口坐标,虚拟坐标。如果在都不设定的情况下,三者是一致的,大小一样。其中物理坐标为硬件设备所有,无法进行设置,setViewport(int x, int y, int w, int h)可以设置视口坐标,(x,y)表示视口坐标的起始坐标点,w、h表示视口坐标窗口的宽和高。setWindow可以设置虚拟坐标的其实坐标点和窗口大小,该函数的解释详见第三大点第一小点。

二、注意三个坐标系的关系,视口坐标系

三、setWindow和translate函数:

  a.QPainter类中的setWindow(int x, int y,int w, int h)函数是用来设置当前物理窗口映射后的虚拟窗口大小,最后的绘制会在该虚拟窗口的大小上进行。参数x、y表示虚拟窗口起始点的坐标,w、h表示映射后虚拟窗口的大小。

  b.translate(int x, int y)函数表示将setWindow函数设置的虚拟窗口的坐标原点(及(0,0)坐标点)移动到参数(x,y)表示的坐标;

  c.这两个函数无论调用顺序如何,translate函数都是在setWindow函数设置的虚拟窗口坐标上进行原点的移动。

以上是关于Qt QPainter中关于坐标的注意事项的主要内容,如果未能解决你的问题,请参考以下文章

聊天气泡的绘制(圆角矩形+三角形+黑色边框,关键学会QPainter的draw函数就行了),注意每个QLabel都有自己的独立坐标

✎Qt-doc—QPainter绘图系统&坐标系统

✎Qt-doc—QPainter绘图系统&坐标系统

✎Qt-doc—QPainter绘图系统&坐标系统

✎Qt-doc—QPainter绘图系统&坐标系统

如何使用 Qpainter 在 Qt 中绘制棋盘