Название: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: VAP от Сентябрь 13, 2008, 14:55 Здравствуйте!
Не могу разобраться почему событие нажатия на клавишу Enter в приведенном коде игнорируется, хотя если вместо Key_Enter подставить например Key_Tab, то все работает без проблем? Код: if (target == lineEdit) { Название: Re: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: ритт от Сентябрь 13, 2008, 15:22 Код: } else { а в остальном код рабочий - проблема не здесь Код: if (keyEvent->key() == Qt::Key_Enter) { Цитировать void QLineEdit::returnPressed () [signal] This signal is emitted when the Return or Enter key is pressed. Note that if there is a validator() or inputMask() set on the line edit, the returnPressed() signal will only be emitted if the input follows the inputMask() and the validator() returns QValidator::Acceptable. Название: Re: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: VAP от Сентябрь 13, 2008, 15:48 Константин, если я Вас правильно понял, необходимо еще обрабатывать сигнал строки ввода
QLineEdit::returnPressed();, что есть имитация нажатия на Enter? Название: Re: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: ритт от Сентябрь 13, 2008, 16:24 похоже, неправильно...
из кода выше можно сделать вывод, что треуется лишь отлов Энтера я предлагаю приконнектиться к returnPressed лайнэдита вместо ивентФильтра. Название: Re: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: VAP от Сентябрь 13, 2008, 16:28 Сделал вот так и все заработало, спасибо Константину:
От фильтра пришлось отказаться. Код: connect(lineEdit, SIGNAL(returnPressed()), SLOT(eventFilter())); Название: Re: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: ритт от Сентябрь 13, 2008, 16:47 сделай transmitData слотом и просто connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(transmitData()));
Название: Re: Не работает событие клавиатуры Key_Enter в фильтре событий Отправлено: Red Devil от Сентябрь 15, 2008, 15:16 Key_Enter - это Enter, который на циферблате.
А enter который основной - Key_Return. |