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

Posted 小哈龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT 中控件内坐标转换为父窗口坐标或屏幕坐标相关的知识,希望对你有一定的参考价值。

已知一个控件的相对父窗口(左上角)的坐标位置,如何获取该控件相对于屏幕(左上角)的坐标,这个问题在MFC里面存在一些函数提供转换,在QT中也存在同样功能的函数,使用起来更便捷。在QT中几乎大部分控件都是继承自QWidget类,因此几乎所有控件都可以使用QWidget类中提供的许多便捷的函数,其中坐标转换便是其中之一:

//以下摘自qwidget.h

//Widget coordinate mapping
QPoint mapToGlobal(const QPoint &) const;              //控件内转屏幕
QPoint mapFromGlobal(const QPoint &) const;            //屏幕转控件内
QPoint mapToParent(const QPoint &) const;              //控件内转父控件
QPoint mapFromParent(const QPoint &) const;            //父控件转控件内
QPoint mapTo(const QWidget,const QPoint &) const;      //转换至指定控件
QPoint mapFrom(const QWidget,const QPoint &) const;    //从指定控件转换为控件内

以上是关于QT 中控件内坐标转换为父窗口坐标或屏幕坐标的主要内容,如果未能解决你的问题,请参考以下文章

Android 获得控件在屏幕中的坐标 - 总结

屏幕坐标和当前窗口坐标如何转换???

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

Qt中的坐标系统

Qt学习笔记2.窗体Widget && 屏幕坐标 && 布局

Android得到控件在屏幕中的坐标