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函数设置的虚拟窗口坐标上进行原点的移动。

原文地址:https://www.cnblogs.com/leomoli/p/7406110.html