Search code examples
qtkeypressqkeyevent

Qt Key Pressevent Enter


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);
}

This code is very simple, class LoginModle inherits from QWidget. run this code and when I press Enter, it shows:

16777220     16777221    10

It means that my Enter in keyboard is 16777220, but in Qt, it was defined as 16777221.

My system is Elementary OS (Freya), which is based on Ubuntu 14.04.

Is there something wrong with my driver or just the program's mistake ?


Solution

  • 16777220(dec) = 1000004(hex), so according to this list, pressed key is "Return". Look at the Wiki - Enter key is in numeric keypad, key used by you is called in Qt "Return key".