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

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

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

我有一个解决方法,就是我只是从qglwidget中的每个鼠标事件中发出新信号,然后将它们连接到我的主窗口中,但是我只是想知道这是一个已知问题,还是做错了,或者根本不可能。

最佳答案

从有关接受事件的Qt文档中:


  设置accept参数表示事件接收者想要
  事件。不需要的事件可能会传播到父窗口小部件。


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

关于c++ - Qt:QMouseEvent不传播出QGLWidget,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28205700/

10-10 16:37