您的位置:首页 > 编程语言 > Qt开发

自己关于Qt坐标的错误使用

2013-10-09 09:12 302 查看
今天在公司做项目的时候,对转换坐标系出现了一些差解。

我建的窗口是一个QWidget A 里面有两个QLabel,

另有一个跟Label同样大小的窗口控件B;

B的状态窗口C。

由B生成的对象分别显示到A的两个Label中。 在我显示C时 我打算显示到B的边缘,当鼠标移动到B上时显示出来。

在显示C时 因为A无法显示完,因此需要绝对坐标来放置。(在B中)

第一次犯错 mapToGlobal( mapToParent(this->pos() ) ) 来获取最终坐标 /// this->pos() 就是获取当前模块在父窗口中的坐标

第二次犯错 发现后 修改为 mapToGlobal( this ->pos() )/// 发现坐标转换后叠加了窗口中的坐标 坐标不准确 偏差为相对于客户区的坐标

错误的原因是 此函数是基于当前模块转换, 以上函数都是当前模块(B)的成员函数,但我当做全局函数来用。

正确获取 直接使用 mapToGlobal(QPoint(0, 0)) 就行了;

个人错误 仅供参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: