Qt 获取Layout内控件坐标的方法

填坑填坑,这也是坑了我好久的,在百度上都搜不到

首先,是获取全局坐标的方法肯定是mapToGlobal

其次,放在Layout下的控件在构造函数初始化阶段肯定是没有具体坐标的,所以要是直接在初始化阶段调用mapToGlobal肯定会得到不正确的坐标

解决,在差不多绘制完成的阶段调用,即可获取正确的坐标,目前已知的可以在QEvent::WindowActivate产生的时候来调用即可获得坐标。

1
2
3
4
5
bool  QDialogEx::event(QEvent *e)   //这是个事件重载
{
     if (QEvent::WindowActivate == e->type())
     {
         /* 此处来通过mapToGlobal来获取坐标 */

你可能感兴趣的:(Qt 获取Layout内控件坐标的方法)