Виртуальная клавиатура для браузера на базе QtWebKit или как я могу получить текущее текстовое поле?
-
20-09-2019 - |
Вопрос
Я работаю над внедрением виртуальной клавиатуры для браузера на базе QtWebKit.У меня возникают большие трудности с пониманием того, как QtWebKit рисует элементы управления на самой странице.Изначально я думал, что это экземпляры QLineEdit, но это не так.Углубляясь в реализацию, выясняется, что связующий код между Qt и WebKit рисует текстовое поле с использованием QStyle и QPainter.К сожалению, я очень новичок в Qt, и поэтому я не понимаю, где в цикле событий интерпретируются нажатия мыши для этих событий.Я нашел Editor::CanEdit() глубоко в стеке вызовов, и теперь я могу вызвать виртуальную клавиатуру, когда пользователь нажимает на текстовое поле внутри страницы.Затем виртуальная клавиатура ожидала получить указатель на экземпляр QWidget, но Edito::CanEdit() не содержит этой информации, и я не могу найти нигде, где доступен экземпляр, подобный QWidget.Я действительно в тупике, любой совет был бы очень кстати.
Спасибо!
Решение
Возможно, вам повезет больше, подключив виртуальную клавиатуру к системе методов ввода Qt.Найдите "InputMethod" в исходном коде QtWebKit Api, т.е.файлы qweb*.*.