理解了一些概念也就理解了这两个函数
看的见的物理坐标:即创建的Widget中的坐标,左上角为原点(0,0),宽和高就是Widget的宽和高
看不见的逻辑坐标:QPainter是在看不见的逻辑坐标中进行绘图的
在不调用setWindow和setViewport的时候物理坐标和逻辑坐标是一样的
setWindow将逻辑坐标的哪一部分区域拿出来映射到物理坐标,其中的参数矩形区域是对于逻辑坐标来说的
在不调用setViewport的情况下该矩形区域会映射到整个Widget区域,并且会同比例的进行缩放,比如Widget的高为400宽为400,setWindow设置的矩形区域的高为200,宽为200,那么逻辑区域会被放大
以上Widget的宽高为(550,440),setWindow将逻辑坐标的(100,100,200,200)的区域映射到了Widget的整个区域,drawRect画的第一个矩形区域是(100,100,200,200)也即setWindow设置的逻辑区域,那么该矩形就会是整个Widget区域。
setViewport是将逻辑坐标映射到物理坐标的哪个区域,指定的区域是相对于Widget来说的
逻辑坐标上宽200高200的矩形,被映射到物理坐标宽100高100的区域了。
所以从逻辑坐标到物理坐标的映射,会发生缩放