对于 窗口、视口,逻辑坐标、物理坐标、绘图设备坐标等 这些概念的理解,理清下面的关系就好。
QPainter的各种draw方法是基于窗口坐标系的,窗口坐标为逻辑坐标,是基于视口坐标系的;视口坐标为物理坐标,是基于绘图设备坐标系的。没有做过改动的情况下,他们是一样的,都是以绘图设备(paint device,qwidget,qpixmap等都为绘图设备)的大小为大小,左上角为原点(0,0)。
窗口:
void QPainter::setWindow(int x, int y, int width, int height)
参数:
x:窗口左上角x坐标
y:窗口左上角y坐标
width:窗口长度
height:窗口高度
setWindow(-50,-50,100,100)
视口:
void QPainter::setViewport ( int x, int y, int width, int height )
参数:
x:设置视口左上角x坐标
y::设置视口左上角y坐标
width:设置视口长度
height:设置视口宽度
出处:qt坐标系统见解