crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QEvent::KeyPress и UNICODE, (сканер штрихкода)
512es
  опции профиля:
сообщение 24.11.2009, 22:41
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Доброго времени суток!
Есть такая проблема. Пытаюсь перехватить символы юникода, которые вводятся с клавиатуры.

Делаю это вот так:
QApplication::instance()->installEventFilter(this);

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
     if (event->type() == QEvent::KeyPress) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
      -----------------------------------
     }
  -----------------------------------
}


Проблема в том, что моя программа, видимо вообще не поддерживает ввод юникода с клавиатуры. При этом на виджетах появляются артефакты. И поведение вообще не предсказуемое.

Может кто уже сталкивался с такой проблемой?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 25.11.2009, 10:12
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


[/quote]
Цитата(Litkevich Yuriy @ 25.11.2009, 9:49) *
как ты вводишь эти символы?

так и выводит
Цитата(512es @ 24.11.2009, 23:57) *
keyEvent->key() выдаёт значения 16777251,

дело в том что это коды qtшные и на сколько я знаю функция text() жутко глючила до версии 4.5.2.
вопрос в другом зачем перехватывать символ а потом его "вставлять"?
с помощью фильтра событий ты можешь просто пропустить его(символ) дальше и он сам вставится.
Цитата(512es @ 24.11.2009, 23:57) *
Как их перевести в нормальную читабельную строку?

может если покрутить всякие там QTextCodec всё получится без перевода key() в QString() ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 18:59