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

avatar
作者
猴君
阅读量: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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!