• 3665阅读
  • 1回复

关于Mousemove的一个问题 [复制链接]

上一主题 下一主题
离线peterxj108
 

只看楼主 正序阅读 楼主  发表于: 2010-01-31
窗体SecondAttempt里有一个我写的基于QImage的成图控件类FigureShow。如今界面可理解成类似Windows的画图界面,或者说类似Qt的Scribble的那个界面,上面是SecondAttempt的菜单栏,下面就是FigureShow成图,最下面是SecondAttempt的statusBar。

如今想要实现鼠标在FigureShow上移动时在SecondAttempt里显示出鼠标实时所在位置对应的FigureShow上的坐标。
我是这么写的:FigureShow里定义Q_SIGNALS叫void sendMouseLocation(int x,int y)发送鼠标位置,SecondAttempt里定义public slots为void recvMouseLocation(int x,int y)接受传来的x y值并在statusBar()上显示。
void FigureShow::mouseMoveEvent(QMouseEvent * event)里只有一句话:emit sendMouseLocation(event->x(),event->y());。

void SecondAttempt::recvMouseLocation(int x,int y)
{
    statusBar()->showMessage(tr("Pixel:x=%1,y=%2").arg(x).arg(y));
}
感觉应该没什么问题,但运行时发现似乎必须鼠标某个按键在按下的时候才能触发,但我想实现鼠标不按下按键就达到这样的效果。请问要改什么地方?
离线peterxj108

只看该作者 1楼 发表于: 2010-01-31
刚刚明白了,初始化时定义FigureShow的setMouseTracking(true)即可……
快速回复
限100 字节
 
上一个 下一个