Название: как подсунуть русскую букву в QLineEdit? Отправлено: lisarden от Апрель 04, 2011, 10:02 есть ARM9 девайс с файловой системой busybox. Поддержки русского ввода нет, но Qt само по себе русский текст нормально отображает.
Задача: при нажатии кнопок в латинской (она же единственная) раскладке в QLineEdit отображать русские буквы. Как это сделать? На ум приходят варианты: 1) в eventFilter на QLineEdit перехватывать нажатия кнопок и руками делать setText/insert 2) перехватывать нажатия кнопок там же, подменять keymaps(?) в общем, что проще и более подходит под данную задачу? Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: Fat-Zer от Апрель 04, 2011, 10:15 1) Busybox - это не файловая система
2) похоже вариант с перехватом событий топорный, но единственный... Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: Fess от Апрель 04, 2011, 10:20 Mожет быть лучше перехватывать события QKeyEvent в фильтре на уровне QApplication?
Будет универсальнее.. Скажем, игнорировать пришедшее, декодировать и отправлять новое событие с правильным содержанием. QKeyEvent::QKeyEvent ( Type type, int key, Qt::KeyboardModifiers modifiers, const QString & text = QString(), bool autorep = false, ushort count = 1 ) ..and the given text is the Unicode text that the key generated. Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: lisarden от Апрель 04, 2011, 11:49 Спасибо за совет!
Попробовал сделать так: Код: qApp->sendEvent(qApp->focusWidget() Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: Fess от Апрель 04, 2011, 12:03 Цитировать Int key is the code for the Qt::Key that the event loop should listen for. If key is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. Видимо, это влияет на фильтрацию события в цикле их обработки..В вашем случае лучше посылать то, что и пришло: int QKeyEvent::key () const Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: lisarden от Апрель 05, 2011, 11:07 выяснил, что передача той же кнопки приводит к segmentation fault. Пока передаю key=0 и так работает.
Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: ритт от Апрель 05, 2011, 18:16 а мб не изобретать велосипеды, а почитаь документацию по qws? :)
Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: lisarden от Апрель 05, 2011, 22:03 а мб не изобретать велосипеды, а почитаь документацию по qws? :) я читаю, но выборочно :).надо мной заказчик стоит и особо вчитываться времени нет..Может, ткнете носом в доку? ;) Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: Пантер от Апрель 05, 2011, 22:36 тыкаю (http://doc.qt.nokia.com/) :)
Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: lisarden от Апрель 05, 2011, 22:41 тыкаю (http://doc.qt.nokia.com/) :) ну, этот ресурс у меня не закрывается с утра до ночи..Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: ритт от Апрель 05, 2011, 23:11 тыкаю (http://doc.qt.nokia.com/) :) ну, этот ресурс у меня не закрывается с утра до ночи..http://doc.qt.nokia.com/4.7/qt-embedded-charinput.html#keymaps Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: ритт от Апрель 06, 2011, 00:13 бтв, всегда скептически относился к отмазкам вида "проект горит/заказчик плетьми лупит - читать доки некогда"...
неужели велосипедостроить и/или ждать ответа на форуме по нескольку дней - быстрее, чем даже скрупулёзно изучить доки? к примеру, у меня поиск материала по ссылке выше занял около минуты... Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: lisarden от Апрель 06, 2011, 06:50 http://doc.qt.nokia.com/4.7/qt-embedded-charinput.html#keymaps [/quote] читал и даже начал немного в эту сторону копать, но был сбит с толку :) тогда, уважаемый Гуру, эти keymaps помогут реализовать клавиатуру телефона, у которого только цифровая клава есть и надо жать по 5 раз на "4", чтобы плучить "#" или "щ"? Мне кажется эти keymaps нужны, чтобы тупо транслировать O->Щ и L->Д. Я не прав? Название: Re: как подсунуть русскую букву в QLineEdit? Отправлено: ритт от Апрель 06, 2011, 14:52 не нужно ёрничать...
про "надо жать по 5 раз на "4", чтобы плучить "#" или "щ"" в данном треде встречается впервые и, видимо, до сих пор была угадайка. если стандартный linux input кбд драйвер поддерживает такой тип набора (и если я правильно помню), то всё в порядке, т.к. кеймапы обрабатываются в последнюю очередь (непосредственно перед отправкой события qws-серверу). а вот поддерживается ли многоуровневый маппинг? - этого я уже не помню вовсе... |