三步理解Qt中的setViewport和setWindow

三步理解Qt中的setViewport和setWindow

Qt中的逻辑坐标系统和物理坐标系统是通过setWindow和setViewport函数来设定,二者的参数都是矩形QRect(),理解起来颇为费劲,网上查阅了不少,但是真正理解起来还是得靠自己进行测试。
霍亚飞的《Qt快速开发》上称呼“窗口”和“视口”,窗口是逻辑坐标系统的(QRect),视口是物理坐标系统的块。将窗口映射到视口,可以理解为将逻辑坐标上设定的块(QRect)进行放大缩小直至四个角分别与视口重合。绕晕了也没关系,直接上例子。。

第一步 理解逻辑坐标系统才是QPainter绘制图像的地方

在这里插入图片描述

如上图在逻辑坐标系统上绘制一个矩形:

//重写paintEvent函数如下:
void MainWindow::paintEvent(QPaintEvent *event){
     Q_UNUSED(event)//去除event未使用的告警
     QPainter painter(this);
     QPainterPath path;
     path.moveTo(10,10);
     path.lineTo(110,10);
     path.lineTo(110,110);
     path.lineTo(10,110);
     path.closeSubpath();//直线连接到开始点
     painter.setPen(QPen(Qt::red,2,Qt::SolidLine,Qt::RoundCap,Qt
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值