急求大牛帮助!问题如下:在Label控件上加载显示了一张图片,现在能在该图片上任意地方绘制直线,但是绘制出的直线位置与拖动鼠标移动的位置不一致,例如想在图片上的某个部位画一条直线时,当在该部位按下鼠标左键拖动鼠标时,直线确出现在了图片的其他地方。请问这种情况该如何解决?应该是获取的鼠标位置不正确,针对这种情况如何才能精确获取所需的鼠标位置坐标呢?谢谢!
------解决方案--------------------
是不是取的坐标不对啊?
------解决方案--------------------
鼠标事件获得的坐标 可能 需要转换一下
可以参考
QPoint QWidget::mapFromGlobal ( const QPoint & pos ) const
QPoint QWidget::mapToGlobal ( const QPoint & pos ) const
QPoint QWidget::mapTo ( QWidget * parent, const QPoint & pos ) const
另外 如果原图有坐标变换 也会导致这个问题。
由于你没有贴出 点击坐标 和 画出线的 关系,所以也只能是猜测。
------解决方案--------------------
为什么要在 QLabel 上绘制?如果继承 QWidget, 使用 QPainter 绘制图片,再绘制直线,更直接,不会出现坐标问题。
你现在的坐标问题,可能是因为绘制直线的代码所在的控件和QLabel不是同一个,坐标需要转换。