Qt keyPressEvent
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt keyPressEvent相关的知识,希望对你有一定的参考价值。
keyPressEvent是QWidget里面的函数,所以凡是继承自QWidget的类都可以通过实现这个函数来完成对按键事件的响应。
要让当前的widget能够响应按键事件,最先需要做的事情是,调用:
setFocusPolicy(Qt::StrongFocus);
接下来就是keyPressEvent方法的声明与实现了~
// 声明 void keyPressEvent(QKeyEvent *event);
// 实现 void DisplayGLWidget::keyPressEvent(QKeyEvent* event) { switch (event->key()) { case Qt::Key_Up: mix = (mix + 0.1) > 1 ? 1 : mix + 0.1; std::cout << "mix = " << mix << endl; updateGL(); break; case Qt::Key_Down: mix = (mix - 0.1) < 0 ? 0 : mix - 0.1; std::cout << "mix = " << mix << endl; updateGL(); break; default: break; } }
需要注意的是,响应按键事件后,需要updateGL,否则当前窗口不会自动重新绘制。
以上是关于Qt keyPressEvent的主要内容,如果未能解决你的问题,请参考以下文章
qt keyPressEvent函数方向键没有响应键盘事件的解决方法
qt keyPressEvent函数方向键没有响应键盘事件的解决方法