QT中窗口位置、相对位置、绝对位置


下面以一个简单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大小
}

结果如下:

相关推荐
雮尘1 天前
手把手带你玩转Android gRPC:一篇搞定原理、配置与客户端开发
android·前端·grpc
ktl1 天前
Android 编译加速/优化 80%:一个文件搞定,零侵入零配置
android
alexhilton1 天前
使用FunctionGemma进行设备端函数调用
android·kotlin·android jetpack
冬奇Lab2 天前
InputManagerService:输入事件分发与ANR机制
android·源码阅读
张小潇2 天前
AOSP15 Input专题InputManager源码分析
android·操作系统
RdoZam2 天前
Android-封装基类Activity\Fragment,从0到1记录
android·kotlin
奥陌陌2 天前
android 打印函数调用堆栈
android
用户985120035832 天前
Compose Navigation 3 深度解析(二):基础用法
android·android jetpack
恋猫de小郭2 天前
Android 官方正式官宣 AI 支持 AppFunctions ,Android 官方 MCP 和系统级 OpenClaw 雏形
android·前端·flutter
黄林晴2 天前
Android 17 Beta 2,隐私这把锁又拧紧了
android