【Qt】Qt的坐标转换(mapToGlobal)

发布于:2024-07-23 ⋅ 阅读:(174) ⋅ 点赞:(0)
1、QPoint QWidget::mapToGlobal(const QPoint &pos) const
将小部件坐标转换为全局坐标。mapToGlobal(QPoint(0,0))可以得到小部件左上角像素的全局坐标。

2、QPoint QWidget::mapToParent(const QPoint &pos) const
将小部件坐标转换为父部件坐标。如果小部件没有父部件,则效果与mapToGlobal()相同。

3、QPoint QWidget::mapTo(const QWidget *parent, const QPoint &pos) const
将小部件的坐标转换为父部件的坐标系统,parent不能是0,必须是调用小部件的父部件。

4、QPoint QWidget::mapFromGlobal(const QPoint &pos) const
将全局坐标转换为小部件坐标。

5、QPoint QWidget::mapFromParent(const QPoint &pos) const
将父部件坐标转换为小部件坐标。如果小部件没有父部件,则效果与mapFromGlobal()相同。

6、QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const
将小部件的坐标pos从父部件的坐标系统转换为小部件的坐标系统。parent不能是0,必须是调用小部件的父部件。

7、QPoint QMouseEvent::pos() const
返回鼠标光标相对于接收事件的小部件的位置。

8、QPoint QMouseEvent::globalPos() const
返回事件发生时鼠标光标的全局位置。

9const QPointF &QMouseEvent::screenPos() const
以QPointF的形式返回鼠标光标相对于接收事件的屏幕的位置。这个函数是在Qt 5.0中引入的。

在这里插入图片描述

代码如下:

void Widget::on_pushButton_clicked()
{
    Form *a = new Form;
    a->move(0, 0);
    a->show();
}

结果:
在这里插入图片描述
每次点击按键,生成的子窗口在屏幕的左上方,使用**this->pos()**转换的坐标后,子窗口在父窗口的左上方。
在这里插入图片描述
使用mapToGlobal转换后,每次打开都在按键的左上方。
在这里插入图片描述
加上一些控件的坐标的计算后,就可以每次打开都在控件的下面了。
在这里插入图片描述

参考文章:https://blog.csdn.net/sunflower_2020/article/details/135693171