Я работаю над текстовым редактором, написанным на C++ engine и Qt для пользовательского интерфейса. Я хочу разрешить пользователю писать с любым из источников ввода (клавиатура любого языка). Это было хорошо до тех пор, пока я не поддерживал языки с 1-1 клавиатурным отображением (например, французская/русская клавиатура). У меня был eventFilter
установлен на моем Qwidget
, на котором я рендеринга текста и захватывая ввод данных с клавиатуры в QEvent::InputMethod
Воспитание InputWindow на OSX для ввода текста при вводе текста с помощью asian laguage
Но когда я начал с азиатских языков (например, японский/китайский) Я не в состоянии поддерживать все функции требуемый для редактирования текста на таком языке, типичным примером такого случая является разделение подчеркивания, когда пользователь записывает текст с японским (Hiragana IME) и нажимает клавишу пробела, которая помогает пользователю определить, какие все символы должны быть заменены содержимым на предсказании dialog.See Изображение ниже: :
после битвы некоторое время я понял, что Qt не предоставляет достаточно информации о расколах или длине строки, которая заменяется, и я отказываюсь от идеи создать весь этот внешний вид сам.
Но затем я обнаружил, что некоторые приложения используют некоторый метод ввода конкретной ОС для обработки такого сложного текста. Например, OSX Finder, если мы изменим метод ввода на японский (Hiragana) и начнем вводить текст, когда окно поиска находится в фокусе, оно всплывает в виде плавающего окна, которое принимает все мои входы и передает его поисковому устройству. Смотрите изображение ниже
копаюсь больше, и я понял, что существует такая система, которая была доступна ранее в качестве менеджера Text Services с большим количеством документации («http://mirror.informatimago.com/next/developer.apple.com/technotes/te/te_27.html#Downloads»), которые могли бы сделать этот трюк очень легко для меня НО этот API устарел и больше не доступен.
То, что я ищу, является альтернативой этому устаревшему API. Означает ли какой-либо орган, есть ли у нас API-интерфейс какао, который может помочь мне принести этот компонент метода ввода операционной системы для легкого ввода текста.
Любая помощь/предложения приветствуются.
Соответствующие классы «QInputMethod» и связанные с ними классы. –