自己关于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)) 就行了;
个人错误 仅供参考
我建的窗口是一个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)) 就行了;
个人错误 仅供参考
相关文章推荐
- 【Qt开发】关于Qt应用程序中的堆栈、静态存储区的使用错误
- 关于qt中使用ico文件做程序图标时编译报debug/myico_res.o Error 1错误的说明
- 关于qt中使用ico文件做程序图标时编译报debug/myico_res.o Error 1错误的说明
- 关于QT中 **.cpp:1:1: error: stray '\377' in program 错误解决
- 关于使用Iterator时报NoSuchElementException错误的解决方案以及遍历容器的效率问题
- 分享几个Qt界面绘图时使用到的坐标计算算法
- 关于使用聚合数据汇率接口植入自己的程序问题
- QT常见错误之GLU头文件没法使用
- Qt 使用glaux.h库,glaux.lib(tk.obj) 错误。
- 关于Qt的事件循环以及QEventLoop的简单使用
- 关于Qt使用QNetworkAccessManager下载文件(实现断点续传功能)
- Qt错误:类中使用Q_OBJECT宏导致undefined reference to vtable for "xxx::xxx"错误的原因和解决方法
- 关于Qt的事件循环以及QEventLoop的简单使用
- IIS8.5关于“ 配置错误 不能在此路径中使用此配置节”的解决办法
- 关于qt在linux下使用open,write,close等文件操作的笔记
- android初学日记——关于一些使用eclipse下载到手机时出现的错误
- 关于QT下资源使用和资源占用内存过多的问题
- Qt____在信号和槽中使用自己定义的结构体____操作
- 关于使用JAVA正则表达式报java.lang.StackOverflowError错误问题
- 关于MFC下使用MTL库编译错误的问题