鼠标移动事件默认情况下,触发事件需要点击一下,才能触发。可设置为自动触发。一个鼠标事件包含一些指定的接受标志flag用于指出该事件是否会被接收和处理,如果鼠标指针所在的父窗口不接收该事件则可以调用函数ignore()予以忽略。
Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,包括Qt、基于FrameBuffer的QtopiaCore、快速开发工具QtDesigner和国际化工具QtLinguist等部分。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows95/98平台。
关键是这一句setMouseTracking(true)加在构造函数里面,根据qt的帮助文档,mousemoveEvent事件如果mouserTrack为false,那么只有鼠标按下才会执行,而且默认是false,所以需要把窗口事件设置一下
然后就简单了
protected:void mouseMoveEvent(QMouseEvent * event)//添加mouseMover事件响应
//下面具体代码
void GetMousePoint::mouseMoveEvent(QMouseEvent *event)
{
QString pStr("%1,%2")
pStr = pStr.arg(event->pos().x()).arg(event->pos().y())//这里pos是坐标,你把坐标按比例转换为你的刻度尺就可以了
ui->label->setText(pStr)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)