

下面以一个简单demo说明如上坐标,在一个widget里重写了mousePressEvent方法,在这个方法里获取绝对坐标和相对坐标
c
void Widget::mousePressEvent(QMouseEvent *event)
{
qDebug() << "mouse juedui position:" << QCursor::pos(); //鼠标绝对位置:相对于桌面左上角原点位置
qDebug() << "mouse event->pos:" << event->pos(); //相对位置:相对于控件左上角原点位置
qDebug() << "mouse event->globalPos:" << event->globalPos();
}
当鼠标点击如上点时获取的结果如下:




demo代码如下:
bash
void Widget::on_pushButton_clicked()
{
qDebug() << "btn postion:" << ui->pushButton->pos(); //相对位置,按钮控件相对于应用窗口原点位置
qDebug() << "btn global postion:" << ui->pushButton->mapToGlobal(QPoint(0,0)); //绝对位置,相对于桌面原点的绝对位置
qDebug() << "btn size:"<< ui->pushButton->rect(); //返回控件大小
qDebug() << "widget position:"<< this->geometry(); //绝对大小
qDebug() << "widget size:"<< this->rect(); //返回窗口widget大小
}
结果如下:

