Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ чем отличаются Qt::Key_Return и Qt::Key_Enter

Автор: trdm 27.9.2008, 0:18

Возможно эти различия прийдется поиметь ввиду...

Автор: Litkevich Yuriy 27.9.2008, 11:07

точно не знаю, но думаю это связано с разными клавиатурами, класические UNIX'овые терминалы имели кнопки:
Return
Linefeed
а в IBM'ной кнопка Enter как комбинация этих двух

Следуя примерам Qt'явым лучше оба варианта задействовать.

Автор: trdm 27.9.2008, 11:36

Уже разобрался и задействовал:

    if (pEvent->type() == QEvent::KeyPress) {
        QKeyEvent* keyEvent = (QKeyEvent*)pEvent;
        if (keyEvent){
            switch(keyEvent->key()){
                case Qt::Key_Escape:{
                    emit editComplete(false);
                    return true;
                }
                case Qt::Key_Enter:     // цифровая клавиатура
                case Qt::Key_Return:    // основная клавиатура
                {
                    Qt::KeyboardModifiers  kbrdMod = qApp->keyboardModifiers();
                    if (kbrdMod & Qt::ControlModifier)
                        return false;

                    emit editComplete(true);
                    return true;
                }
                case Qt::Key_Tab:
                {
                    emit editComplete(true);
                    return true;
                }
                default:{
                    break;
                }
            }
        }
    }

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)