代码之家  ›  专栏  ›  技术社区  ›  user1396055

qt:如何找到鼠标键相对于图像的位置

  •  0
  • user1396055  · 技术社区  · 6 年前

    我想实现一个图像编辑器。我在qlabel中有一个qpixmap,在qhboxlayout中。我已经重写了父小部件中的mousepressevent。当鼠标出现时,

     event->pos() = QPoint(271,115)
    

    指向相对于指针(鼠标)移动的位置。位移是qlabel与qwidget角的距离。当我调整窗口大小时,它变大了。如何找到这个位移矢量?我想在qpixmap上画一个鼠标所在的像素。 请注意,以下方法不提供任何补救措施:

    qDebug() << "event->pos()" << event->pos();
    qDebug() << "this->pos() = " << this->pos();
    qDebug() << "pm_imageLabel->pos() =" << pm_imageLabel->pos();
    qDebug() << "pos = " << mapFromGlobal(QCursor::pos());
    

    它们给出了所有不同的位置。无论是在互联网上还是在qt的文档中,我都没有找到答案。提前谢谢你。

    1 回复  |  直到 6 年前
        1
  •  1
  •   user1396055    6 年前

    最后,我在瓦汉乔的帮助下部分解决了这个问题。使用qlabel的qpixmap的位置很难确定,但是我可以禁止qlabel调整大小。所以我将qlabel的大小设置为图像大小。

    pm_imageLabel->setPixmap(m_pixmap);
    pm_imageLabel->setFixedSize(m_pixmap.size());
    

    我甚至连按鼠标都不按 里面 Qlabel类。这样,事件->位置就正确了。

    谢谢。