0

我想实现一个图像编辑器。我在 QHBoxLayout 的 QLabel 中有一个 QPixmap。我已经覆盖了父小部件中的 mousePressEvent。当 mousePressedEvent 发生时,

 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 的文档中搜索让我更接近答案。先感谢您。

4

1 回答 1

1

最后,我在 vahancho 的帮助下部分弄清楚了。QPixmap 与 QLabel 的位置很难确定,但我可以禁止 QLabel 调整大小。所以我将 QLabel 的大小设置为图像大小。

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

我甚至在QLabel 类中也覆盖了 mousePressed 。这样 event->pos 是正确的。

谢谢。

于 2018-11-08T15:15:14.957 回答