翻译:返回按下或释放的键的代码。
有关键盘代码列表,请参见qt::key。这些代码独立于底层窗口系统。请注意,此函数不区分大写字母和非大写字母,为此,请使用text()函数(返回生成键的Unicode文本)。
值0或qt::key_unknown表示事件不是已知键的结果;例如,它可能是合成序列、键盘宏或键事件压缩的结果。
需要引入头文件:
#include<QEvent>
#include<QKetEvent>
可利用事件过滤器机制或信号槽机制来获取键盘按键响应。
事件过滤器定义:
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress) { //鼠标点击事件
if (obj == ui->... { //这里添加要监视的界面组件
MainWindow::setChinese(0);
return true; //表示已经处理事件
}
return false; //未处理事件
} else if (event->type() == QEvent::KeyPress) { //键盘事件
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); //使用Qt提供的QKeyEvent接口
if (keyEvent->key() == Qt::Key_Space) { //空格键
...
return true;
} else if (keyEvent->key() == Qt::Key_Backspace) {
//退格键
return true;
} else if(keyEvent->key() == Qt::Key_1) { //数字键
return true;
} else if(keyEvent->key() == Qt::Key_2) {
return true;
} else if(keyEvent->key() == Qt::Key_3) {
return true;
} else if(keyEvent->key() == Qt::Key_4) {
return true;
} else if(keyEvent->key() == Qt::Key_5) {
return true;
} else if(keyEvent->key() == Qt::Key_6) {
return true;
} else if(keyEvent->key() == Qt::Key_7) {
return true;
}
return false;
}
return QWidget::eventFilter(obj, event); //不是关注的事件则发给原有的事件处理机制
}
具体的键盘按键接口表示参见https://blog.csdn.net/judgejames/article/details/93191524