keyPressEvent没有反应

Tip*_*pok 1 c++ opengl events qt

我正在写QT.OpenGL已连接,工作正常,但事件和keyPressEvent mousePressEvent不响应击键.

class MainWindow : public QGLWidget
{
    Q_OBJECT
    protected:
        void initializeGL(); // ????? ??? ????????????????? opengl
        void resizeGL(int nWidth, int nHeight); // ????? ?????????? ????? ??????? ????????? ??????? ????
        void paintGL(); // ????? ??? ?????? ??????????? ?? ?????
        void paintSun();
        void mousePressEvent(QMouseEvent *mouse);
        void keyPressEvent(QKeyEvent *ke);
public:
    MainWindow(int x, int y,QWidget *parent = 0);
    ~MainWindow();
};

void MainWindow::keyPressEvent(QKeyEvent *ke)
{
    switch (ke->key())
    {
          case Qt::Key_Space://NO REACTION
                View += 1;
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                paintPlanet();
                break;
    }
    updateGL();
}
Run Code Online (Sandbox Code Playgroud)

小智 6

确保MainWindow接受Focus设置

QWidget的:: setFocusPolicy()

您还应该调用QWidget :: keyPressEvent的基本实现,如此处所述.是否有另一个Widget具有焦点并且没有通过KeyEvent?