这几天初学QT,遇到一个小疑问。整个事情是这样的:
1. 刚开始用at自带的camera类编写了一个摄像头捕捉展示,用的控件:QCameraViewfinder。使用mousePressEvent可以捕捉单击此控件的消息。
2. 后来换了opencv实现此功能,用的QLabel的控件,用mousePressEvent无法捕捉单击消息了。
3. 比较后发现在(1)中有行代码赋予了捕捉单击的可能性camera->SetViewFinder().
4. 后来没办法查到了eventFilter的方法解决了问题:具体做法是先使用parent->installEventFilter(this);注册消息过滤,再重载eventFilter捕捉MouseButtonPress,当然它还能捕捉其他诸如键盘的消息。
因为初学,不了解他们两个消息处理的机制,MARK一下,后面有时间深入了解下。