Qt的坐标QPoint与几何图形QRect

坐标相关

//返回这个小部件的父部件,如果没有父部件,则返回nullptr。
QWidget *QWidget::parentWidget() const

//全局鼠标

QCursor::pos

//将小部件坐标pos转换为全局屏幕坐标。例如,mapToGlobal(QPoint(0,0))将给出小部件左上角像素的全局坐标。

QPoint mapToGlobal(const QPoint &) const;

//将父小部件坐标pos转换为小部件坐标。如果小部件没有父组件,则与mapFromGlobal()相同。

QPoint mapFromGlobal(const QPoint &) const;

//将小部件坐标pos转换为父小部件中的坐标。如果小部件没有父组件,则与mapToGlobal()相同。

QPoint mapToParent(const QPoint &) const;

//将父小部件坐标pos转换为小部件坐标。如果小部件没有父组件,则与mapFromGlobal()相同。

QPoint mapFromParent(const QPoint &) const;

//将小部件坐标pos转换为父的坐标系统。父组件不能为nullptr,必须是调用小部件的父组件。

QPoint mapTo(const QWidget *, const QPoint &) const;

//将小部件坐标pos从父部件的坐标系统转换为该小部件的坐标系统。父组件不能为nullptr,必须是调用小部件的父组件。

QPoint mapFrom(const QWidget *, const QPoint &) const;

//这个属性保存小部件在父小部件中的位置。如果小部件是一个窗口,则该位置是小部件在桌面上的位置,包括它的框架。

QPoint pos() const

//设置小部件在父小部件中的位置。如果小部件是一个窗口,则该位置是小部件在桌面上的位置。

void QWidget::move(int ax, int ay)
void QWidget::move(const QPoint &)
几何相关

//setGeometry()函数是对窗体的综合设置,有四个参数,分别是坐标和长宽,但是注意,如果窗体是顶级窗体,例如Qwidget类设置的窗体时,
//设置的坐标只是窗体内灰色框的坐标,这时如果加上move()函数,就可以对窗体外部的边框进行位置的设定。
//setGeometry函数,可以自由的调整位置,但是只能在父控件的范围内调整位置.
//警告:在resizeEvent()或moveEvent()中调用setGeometry()会导致无限递归。

void QWidget::setGeometry(int x, int y, int w, int h)
void QWidget::setGeometry(QRect(x, y, w, h))。

//此属性保存小部件相对于父部件(不包括窗口框架)的几何形状

const QRect &QWidget::geometry() const

//将小部件几何数据转换为相对桌面的几何数据

	QRect geometryToGlobal(const QRect& from)
	{
		QRect tabbarRect;
		auto tl = mapToGlobal(from.topLeft());
		auto br = mapToGlobal(from.bottomRight());
		tabbarRect.setTopLeft(tl);
		tabbarRect.setBottomRight(br);

		return tabbarRect;
	}
contains()函数

告知给定的点是否在矩形内;

intersects()函数

如果矩形与给定的矩形相交,则intersects()函数返回true。QRect类还提供了intersected()函数,它返回相交的矩形,以及united()函数,它返回包含给定矩形的矩形,并如下所示:
在这里插入图片描述
如果left() > right()或top() > bottom(),则isEmpty()函数返回true。请注意,空矩形是无效的:如果left() <= right()和top() <= bottom(),则isValid()函数返回true。另一方面,一个空矩形(isNull() == true)的宽度和高度都设置为0。

注意,由于QRect和QRectF的定义方式,空QRect的定义基本上与QRectF相同。

最后,可以对QRect对象进行流化和比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值