坐标相关
//返回这个小部件的父部件,如果没有父部件,则返回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对象进行流化和比较。