当我将QKeyEvent
用作...小部件时,我遇到了在QOpenGLWidget
中捕获QOpenGLWidget
的问题。如果我使用<form> <input>
作为主窗口,但是如果窗口小部件是另一个mainWindow的子窗口,那么它的效果非常好......(没有任何事情发生)
也许我搞砸了Qt小部件是如何工作的,但我无法理解。
谢谢
答案 0 :(得分:0)
我猜你的mainWindow要么处理QKeyEvent(可能是已映射的键组合),要么阻止转发到自定义小部件组件。当用作“QWidget”时,会应用特殊规则,您需要覆盖其他一些处理程序以使您的处理程序能够进行。
答案 1 :(得分:0)
尝试拨打yourGLWidget->setFocusPolicy (Qt::StrongFocus);
从http://doc.qt.io/qt-5/qwidget.html#focusPolicy-prop:“如果小部件处理键盘事件,则必须为小部件启用键盘焦点。这通常是从小部件的构造函数完成的。”