获取鼠标点击处的控件并获取其坐标

来源:互联网 发布:淘宝分享送红包设置 编辑:程序博客网 时间:2024/04/28 04:26

 

int mouse_x = QCursor::pos().x();//鼠标点击处横坐标
int mouse_y = QCursor::pos().y();//鼠标点击处纵坐标
QWidget *action = QApplication::widgetAt(mouse_x, mouse_y);//获取鼠标点击处的控件
QPoint GlobalPoint(action->mapToGlobal(QPoint(0, 0)));//获取该控件在窗体中的坐标
int x = GlobalPoint.x();//该控件在窗体中左上角横坐标
int y = GlobalPoint.y();//该控件在窗体中左上角纵坐标
 

QT 获取控件widget的屏幕坐标

 :
方法一:/// 获取窗口控件的屏幕位置,类似于ClientToScreenQPoint GlobalPoint(widget->mapToGlobal(QPoint(0,0)));方法二:/// 获取窗口控件的屏幕位置static QPoint getPos(QWidget* widget){ if (NULL == widget)  return QPoint(-1,-1); float px = 0; float py = 0; QWidget *parent = widget; QWidget *preParent= NULL; do  QPoint p = parent->pos();  px += p.x();  py += p.y();  preParent = parent ;  parentw = parent->parentWidget();  } while (NULL != parent); QSize size = preParent->frameSize(); QSize size2 = preParent->size(); px = px + (size.width() - size2.width())/2; py = py + (size.height() - size2.height() - (size.width() - size2.width())/2); QPoint pr(px, py); return pr;}
    
 
 
原创粉丝点击