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

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

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Раскладка клавиатуры

Автор: zss 18.1.2010, 8:48

у меня есть строки в русской раскладке.
Но понадобилось получить эти же строки, но в английской раскладке.

Например: ёрш->`hi
Ёрш->~hi

то есть еще и с учетом регистра

Чем можно перевести ?

Автор: azure 18.1.2010, 16:09

Цитата(zss @ 18.1.2010, 7:48) *
у меня есть строки в русской раскладке.
Но понадобилось получить эти же строки, но в английской раскладке.

Например: ёрш->`hi
Ёрш->~hi

то есть еще и с учетом регистра

Чем можно перевести ?

учитывая, что раскладки бывают не только qwerty и йцукен, это становиться поистине проблемой :) Нужно знать коды кнопок и соответствие им раскладок.

Автор: zss 18.1.2010, 17:04

Цитата(azure @ 18.1.2010, 16:09) *
учитывая, что раскладки бывают не только qwerty и йцукен, это становиться поистине проблемой :) Нужно знать коды кнопок и соответствие им раскладок.


удалось получить scan-код символа задавая нужную раскладку.
после это раскладка меняется и я пытаюсь по данному scan-соду получить символ (ToAscii)

Но вот символ выводится только в нижнем регистре. А вот состояние переключения не учитывается, хотя в scan-коде бит взведен.

Как получить символ с учетом регистра ?

З.Ы. Или можно как получить соответствие кодов для раскладок ?

Автор: Litkevich Yuriy 18.1.2010, 17:11

согласен с azure, разве, что найти пару-тройку разных клавиатур и под них составить таблички перекодировки. Желательно таблички сделать в стиле ini-файлов, чтоб "если что" пользователю можно было бы самому подкорректировать.

Автор: zss 18.1.2010, 17:19

Цитата(Litkevich Yuriy @ 18.1.2010, 17:11) *
согласен с azure, разве, что найти пару-тройку разных клавиатур и под них составить таблички перекодировки. Желательно таблички сделать в стиле ini-файлов, чтоб "если что" пользователю можно было бы самому подкорректировать.


ну мне пока нужно rus->eng

Вроде пока удалось сделать с помощью
GetKeyboardState
LoadKeyboardLayout
VkKeyScanEx
MapVirtualKeyEx
ToAscii

Хотя осталась проблема с регистром.
Может как руками можно изменить символ для регистра ?

З.Ы. Хтя думал, что в QT есть возможность...

Да и что-то не нашел я таблицы...

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