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

结果如下:

相关推荐
不正经学生2 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技3 小时前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
limuyang24 小时前
PDF Viewer KMP(基于 chrome 的 PDFium 内核)
android·kotlin
恋恋西风5 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
Brilliantwxx5 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
BizzZ_6 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_6 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
geovindu6 小时前
CSharp: 万年历
开发语言·后端·c#·.net
我找到地球的支点啦7 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
予昊7 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket