我现在自己在一个新的widget画了一个网格坐标,我现在想实现一个功能:鼠标移动时,能够显示我鼠标在这个网格坐标系的坐标值。但是现在用了
mouseline->setText("("+QString::number(event->x())+","+QString::number(event->y())+")");//显示鼠标坐标值
只是显示我这个鼠标在整个widget的坐标,而且是是像素坐标吧?怎么实现呢
------解决方案--------------------
这个显示的应该只是窗口坐标,需要转换成你的网格坐标,涉及到你的网格矩阵和窗口坐标转换的问题
------解决方案--------------------
网格的缩放应该有个可以量化的矩阵来表示,这个矩阵可以和设备坐标转换。比如初始状态下你设置一个矩阵,这个矩阵应该可以和设备坐标有个映射关系,在你缩放后根据缩放比例或平移之类的转换记录下变换后的矩阵,然后做转换就ok