在Qt中要捕捉鼠标移动事件需要重写MouseMoveEvent,但是MouseMoveEvent为了不太耗资源,默认状态下只有鼠标按下的移动才能捕捉到。要想捕捉鼠标不按下时的移动,需要setMouseTracking(true)。
注意:如果你想响应鼠标事件的控件被某个父控件包含,则该控件及其父控件或容器也需要setMouseTracking(true); 如我的程序中标准的QLable被我自定义类提升为myLabel,在主界面中我首先设置一个Container容器QWidget的widget1,之后放置若干myLable,现在需要当鼠标在label上移动时要有提示信息。需要做如下工作:首先在自定义的类中需要调用setMouseTracking(true)。之后在主界面中需要调用 ui.widget1->setMouseTracking( true );
参考:http://blog.csdn.net/hcj116/article/details/17334473
时间: 2025-01-16 11:52:11