首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QT5.15中移动QWidget,光标停留在小部件的0,0

在QT5.15中移动QWidget,光标停留在小部件的0,0
EN

Stack Overflow用户
提问于 2022-07-24 19:51:16
回答 1查看 48关注 0票数 -1

我试图通过拦截QWidget来移动QMouseEvent,结果是:

代码语言:javascript
复制
void MyWidget::mousePressEvent(QMouseEvent *evt)
{
    if(!ui.bar_horizontalFrame->underMouse()|| evt->button() != Qt::LeftButton) return;

    if(ui.bar_horizontalFrame->underMouse())
    {
        oldPos = evt->globalPos() - evt->pos(); //QPoint
    }
}
void myWidget::mouseMoveEvent(QMouseEvent *evt)
{
    if(!ui.bar_horizontalFrame->underMouse()) return;

    const QPoint delta = evt->globalPos() - oldPos;

    move(delta);
}

问题是,无论我第一次按下框架对象的位置,小部件原点(0,0)都会移动到当前的光标位置(因此光标将位于左上角)。我如何拥有它,使小部件的起源不会移动到光标位置?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 18:35:14

你所做的是:

代码语言:javascript
复制
if(ui.bar_horizontalFrame->underMouse())
{
    oldPos = evt->globalPos() - evt->pos(); //QPoint
} 

你得

代码语言:javascript
复制
if(ui.bar_horizontalFrame->underMouse())
{
    oldPos = evt->globalPos() - frameGeometry().topLeft();
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73101555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档