Qt中的setViewport和setWindow 记录

Qt中的setViewport和setWindow 记录
https://blog.csdn.net/qq_38832450/article/details/103478571

https://blog.csdn.net/qjclinux/article/details/82864316

三步理解Qt中的setViewport和setWindow
https://blog.csdn.net/weixin_39583140/article/details/92798127

霍亚飞的《Qt快速开发》上称呼“窗口”和“视口”,窗口是逻辑坐标系统的(QRect),视口是物理坐标系统的块。
将窗口映射到视口,可以理解为将逻辑坐标上设定的块(QRect)进行放大缩小直至四个角分别与视口重合。

我们没有设置逻辑坐标系统和和物理坐标系统,那么默认情况下物理坐标系统和逻辑坐标系统重合,且左上角默认为(0,0)坐标,右下角为(widget(),heigth())即窗体的宽度和高度:此时绘制的方框是我们预期的,对窗体进行拖动放大缩小,绘制图形不变

QPainter 在逻辑坐标上面绘图,
painter.setWindow(QRect(10,10,400,400));
选取逻辑坐标系中一个区域,

这个区域,映射到 物理坐标系中。
painter.setViewport(QRect(0,0,400,400));

setViewport 是映射到的物理坐标系的区域。

就是有两张图纸
本来是重合的,
然后就 从第一张图纸中 割下来一块。

然后再 第二张图纸中用 铅笔画一个 矩形。
然后 将第一张纸中割下来的一块纸 ,通过拉伸,
完全覆盖到第二张纸画的矩形上面。

第二张纸画的矩形,会随着 第二张纸 拉伸变化,而变化。

第一张纸就是逻辑坐标系。setWindow
第二张纸就是 物理坐标。setViewport

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值