无法在QopenGLWidget中捕获QkeyEvent

时间:2016-02-06 20:10:32

标签: c++ qt opengl

当我将QKeyEvent用作...小部件时,我遇到了在QOpenGLWidget中捕获QOpenGLWidget的问题。如果我使用<form> <input>作为主窗口,但是如果窗口小部件是另一个mainWindow的子窗口,那么它的效果非常好......(没有任何事情发生)

也许我搞砸了Qt小部件是如何工作的,但我无法理解。

谢谢

2 个答案:

答案 0 :(得分:0)

我猜你的mainWindow要么处理QKeyEvent(可能是已映射的键组合),要么阻止转发到自定义小部件组件。当用作“QWidget”时,会应用特殊规则,您需要覆盖其他一些处理程序以使您的处理程序能够进行。

答案 1 :(得分:0)

尝试拨打yourGLWidget->setFocusPolicy (Qt::StrongFocus);

http://doc.qt.io/qt-5/qwidget.html#focusPolicy-prop“如果小部件处理键盘事件,则必须为小部件启用键盘焦点。这通常是从小部件的构造函数完成的。”