qt按键 keypressevent

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt按键 keypressevent相关的知识,希望对你有一定的参考价值。

void MainWindow::keyPressEvent( QKeyEvent *k)

if(k->key() == Qt::Key_A)

CS1->setText(QObject::tr("a"));


这个程序中 if(k->key() == Qt::Key_A)这句是什么意思呀?Qt::Key_A是什么呀?
谁能发一份keypressevent,按键按下产生一个反应的例子程序呀?我邮箱1129830650@qq.com
谢了

参考技术A if(k->key() == Qt::Key_A) 表达为键盘操作是否按下的是A
k->key()键盘按下追问

主要是现在我是ARM上面的几个按键,没有标准键盘键,我该怎么写按下的是哪个键呢?

参考技术B 这是Qt接收键盘的输入的值。。。相当于键盘A键按下 参考技术C keyPressEvent这是qt的源码啦 不用给你发 你也不必去看原理 会用即可 参考技术D 判断KeyPressEvent事件按下的是否为键A

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::Key键盘按键说明

qt按键 keypressevent

QT Windows平台屏蔽按键事件 自定义拦截按键输入

Qt - 从 QMainWindow 向 GLWidget 发送按键事件

Qt 按键控制combobox

如何在 Qt 应用程序中生成按键事件到系统(win7)(模拟用户在键盘上按键)?