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

结果如下:

相关推荐
diediedei2 小时前
C++中的适配器模式变体
开发语言·c++·算法
郝学胜-神的一滴2 小时前
Python中的Mixin继承:灵活组合功能的强大模式
开发语言·python·程序人生
叫我:松哥2 小时前
基于python强化学习的自主迷宫求解,集成迷宫生成、智能体训练、模型评估等
开发语言·人工智能·python·机器学习·pygame
晚霞的不甘2 小时前
Flutter for OpenHarmony 创意实战:打造一款炫酷的“太空舱”倒计时应用
开发语言·前端·flutter·正则表达式·前端框架·postman
WKP94182 小时前
线程并行控制CompletableFuture
java·开发语言
飞机和胖和黄2 小时前
考研之C语言第二周作业
c语言·开发语言·考研
输出输入2 小时前
MT4 EA 设计一次一单方法
开发语言
一起养小猫2 小时前
OpenHarmony 实战中的 Flutter:深入理解 Widget 核心概念与底层原理
开发语言·flutter
盐真卿2 小时前
python第四部分:模块(每日更新)
开发语言·python