QT之QRect函数QRect::adjust()函数解析

本文通过实例详细解析了QRect中的adjust函数的工作原理,包括如何通过四个参数调整矩形的位置和大小,以及这些参数是如何影响矩形的边界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发中使用到QRect的adjust函数,查阅官方文档的解释并不是很明白,索性还是自己动手实践一下:

我们先假定一个起始坐标(20,20),宽和高均为100的矩形,然后我们用drawRect()函数画出来,下图中的绿线所示,然后我们使用adjust(-10,-10,10,10)对该矩形进行调整,使用drawRect()函数画出来的图形为蓝线所示

这里写图片描述

adjust()函数原型为

void QRect::adjust(int dx1, int dy1, int dx2, int dy2)

我们可以这样理解:dx1为相对于原始矩形左上角x坐标的偏移值,dy1为相对于原始矩形左上角y坐标的偏移值,负值表示在矩形外,正值表示在矩形内;dx2和dy2分别是相对于右下角x坐标和y坐标的偏移值,负值表示在矩形内,正值表示在矩形外,正好相反!这点需要注意一下!

<think>好的,用户想了解QRect的相关信息或用法。首先,我需要确认QRectQt中的基本作用和常见用途。QRectQt中用于表示矩形的类,通常用于图形界面编程中的位置和尺寸管理。接下来,我应该整理它的主要成员函数和属性,比如坐标、尺寸、调整方法等。还要注意不同Qt版本之间是否有差异,比如用户提供的引用提到QTextOStreamIterator被移除,虽然这不直接影响QRect,但可能需要注意Qt版本变化带来的其他变化。用户可能需要示例代码,所以准备一个简单的使用QRect的代码片段会很有帮助。同时,考虑用户可能遇到的问题,比如坐标系系统、成员函数的使用场景等。最后,生成相关问题,帮助用户进一步学习,比如与其他图形类的交互、性能优化等。需要确保回答结构清晰,符合用户的中文要求,并正确引用提供的资料。检查LaTeX格式是否符合要求,行内公式用$...$,独立公式用$$...$$,但这里可能涉及较少数学公式,重点放在代码和文字描述上。最后验证所有信息是否准确,特别是关于QRect的成员函数和用法,确保没有过时内容。</think>[用户可见层] ### QRect类详解 QRectQt中用于描述二维矩形的核心类,常用于界面布局、绘图和几何计算。其坐标系默认采用左上角为原点$(x,y)$,向右和向下为正方向。 #### 核心属性和方法 1. **坐标与尺寸**: - 获取左上角坐标:`x()`, `y()` - 获取宽度/高度:`width()`, `height()` - 右下角坐标:`right()`, `bottom()` 2. **几何变换**: ```cpp QRect rect(10, 20, 100, 50); // (x,y,width,height) rect.adjust(5,5,-5,-5); // 各边向内缩进5像素 QRect moved = rect.translated(30, -10); // 平移坐标 ``` 3. **判断操作**: - 包含点检测:`contains(QPoint)` - 矩形交集检测:`intersects(QRect)` - 有效矩形检查:`isValid()` #### 坐标系注意 Qt提供两种坐标系模式: $$ \begin{cases} \text{默认模式} & \text{左上原点} \\ \text{QPainter坐标} & \text{可通过变换修改原点位置} \end{cases} $$ 在图形渲染时需特别注意坐标转换[^1]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值