c++ - keyPressEvent 没有反应

标签 c++ qt events opengl

我在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::setFocusPolicy()

您还应该调用 QWidget::keyPressEvent 的基本实现 as stated here .是否有其他Widget获得了焦点但没有通过KeyEvent?

关于c++ - keyPressEvent 没有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22169216/

相关文章:

c++ - QFileDialog动态翻译

c++ - 此代码行为是否已定义?

c++ - 编译基于sCrypt的加密货币QT客户端时,抛出常见错误

c++ - 在使用 QFileDialog 的 getExistingDirectory 的 QT 中,如何从环境变量指定的目录开始?

javascript - 从 "onload"处理程序调用 canvas.drawWindow() 可以吗?

通过 SetPixel 设置的 C++ 像素在调整控制台大小时或将其移出屏幕时消失

c++ - 我的 C++ 程序什么都不做

c++ - Qt解析对象数组JSON

javascript - 在 javascript 中,将自定义事件附加到文档本身是不好的做法吗?

c# - 事件是否保证会举行?