Qt:QMouseEvent 不会从 QGLWidget 传播

Qt: QMouseEvent not propagating out of QGLWidget

本文关键字:QGLWidget 传播 QMouseEvent Qt      更新时间:2023-10-16

QGLWidget是否有可能传播其鼠标事件?

我目前有一个 QGlWidget 作为我的主窗口的子窗口,但我似乎无法处理在其框架上发生的鼠标事件。

也许我犯了一个根本性的缺陷,但是 qglwidet 本身中的鼠标事件被设置为 event->accept(),我也没有阻止来自 qglwidget 的传出信号。

我有一个解决方法,我只是

从 qglwidget 中的每个鼠标事件中发出新信号,并在我的主窗口中连接它们,但我只是好奇这是否是一个已知问题,我做错了,或者如果根本不可能。

来自 Qt 文档中关于接受事件:

设置 accept 参数表示事件接收器需要 事件。不需要的事件可能会传播到父小组件。

因此,当您接受小部件上的鼠标事件时,它不会传播到主窗口。可以在QGlWidget中处理事件,但不必设置接受标志。只需将其传播到父级即可。