我在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();
}
最佳答案
通过设置确保主窗口接受焦点
您还应该调用 QWidget::keyPressEvent 的基本实现 as stated here .是否有其他Widget获得了焦点但没有通过KeyEvent?
关于c++ - keyPressEvent 没有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22169216/