Anu*_*dor 6 qt keypress qkeyevent
void LoginModle::keyPressEvent(QKeyEvent *event)
{
qDebug() << event->key() << "\t" << Qt::Key_Enter << "\t" << QKeyEvent::Enter;
if( event->key() == Qt::Key_Enter)
OKButtonClicked();
else
QDialog::keyPressEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
这段代码非常简单,类LoginModle继承自QWidget.运行此代码,当我按下时Enter,它显示:
16777220 16777221 10
Run Code Online (Sandbox Code Playgroud)
这意味着我Enter的键盘是16777220,但在Qt中,它被定义为16777221.
我的系统是Elementary OS(Freya),它基于Ubuntu 14.04.
我的司机或者程序的错误是否有问题?
输入Qt::Key_Enter的Enter键是数字键盘上的Enter键.您按下键盘上字母旁边的"Enter"键.这被称为Return键,其值由Qt::Key_Return,表示为16777220.
因此,为了支持两个按键,您可以修改if语句,如下所示:
if( (event->key() == Qt::Key_Enter) || (event->key() == Qt::Key_Return))
OKButtonClicked();
else
QDialog::keyPressEvent(event);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9283 次 |
| 最近记录: |