您的位置:首页 > 编程语言 > Qt开发

Qt keyPressEvent

2016-03-02 16:56 316 查看
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,否则当前窗口不会自动重新绘制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: