怎样获取一个控件相对于父窗口的坐标位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样获取一个控件相对于父窗口的坐标位置相关的知识,希望对你有一定的参考价值。

参考技术A pos()函数就能解决问题,能够返回坐标点QPoint
如果有父窗口的话,你先试试mapToParent(),返回在父窗口中的坐标,然后再
mapToGlobal(),你试试,我现在没空弄这个,如果还不行的话,我再想想
参考技术B 正确的方法是这样的:
crect
rect;
getwindowrect(&rect);
这样获得的是控件相对于屏幕的坐标,然后用screentoclient(&rect)就可以获得控件相对于父窗口的坐标
注意:如果你用getclientrect(&rect)的话,rect.left和rect.top始终是0,得到的并不是实际坐标。

client offset screen 的区别

clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。

clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。
offsetX 设置或获取鼠标指针位置相对于触发事件的(this)对象的 x 坐标。
offsetY 设置或获取鼠标指针位置相对于触发事件的(this)对象的 y 坐标。
screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。
screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。
x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。
y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标。

 

以上是关于怎样获取一个控件相对于父窗口的坐标位置的主要内容,如果未能解决你的问题,请参考以下文章

JS如何判断元素相对于父窗口的绝对位置?

QT 中控件内坐标转换为父窗口坐标或屏幕坐标

QT 中控件内坐标转换为父窗口坐标或屏幕坐标

相对于父级放置窗口

查找相对于父滚动 div 而不是窗口的偏移量

client offset screen 的区别