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大小
}

结果如下:

相关推荐
蜗牛互联网24 分钟前
Python Agent 工具调用:审批令牌、参数白名单和累计预算
java·开发语言·人工智能·windows·后端·python
恋猫de小郭30 分钟前
Kotlin 2.5 的 Companion 改造,对 KMP 的重要升级
android·前端·flutter
承渊政道1 小时前
【Python编程—从入门到实践】(让程序记得、恢复并解释失败:Python 文件、异常与JSON系统教程)
开发语言·python·pycharm·json·异常处理
一水鉴天1 小时前
声调韵的序:从古汉语音韵到系统科学语言的场效应推演 20261013(千问)
开发语言·人工智能
郭庆汝1 小时前
(六)MCP+A2A之——Playwright与BrowserUse:让AI学会像人类一样使用浏览器
开发语言·python
涉密IT资质笔记1 小时前
涉密资质投入产出分析模型:时间成本、四块成本构成与 ROI 决策框架
java·开发语言·算法
北风toto2 小时前
KMP 算法详解:从暴力匹配到 O(n+m) 的字符串搜索
java·开发语言·算法
Kapaseker2 小时前
写了这么久 Kotlin,你真的理解 in、out 和 * 吗?
android·kotlin
william_yangshun2 小时前
WordCraft 观察:纯 Rust 重写文字处理器,把文档变成可编程对象
开发语言·后端·rust·文档自动化
dtq04242 小时前
C++ - 变量
开发语言·c++