已知一个控件的相对父窗口(左上角)的坐标位置,如何获取该控件相对于屏幕(左上角)的坐标,这个问题在MFC里面存在一些函数提供转换,在QT中也存在同样功能的函数,使用起来更便捷。在QT中几乎大部分控件都是继承自QWidget类,因此几乎所有控件都可以使用QWidget类中提供的许多便捷的函数,其中坐标转换便是其中之一:
//以下摘自qwidget.h//Widget coordinate mappingQPoint 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; //从指定控件转换为控件内