我正在写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(); }
小智.. 6
确保MainWindow接受Focus设置
QWidget的:: setFocusPolicy()
您还应该调用QWidget :: keyPressEvent的基本实现,如此处所述.是否有另一个Widget具有焦点并且没有通过KeyEvent?