Обработка текстовых элементов веб-страниц с помощью qml-клавиатуры - PullRequest
1 голос
/ 18 февраля 2012

Я использую Qt Web Kit 1.0 для открытия веб-страниц.У меня есть клавиатура, написанная на qml.Я хочу использовать эту клавиатуру для ввода текста в текстовые поля страниц HTML.

Скажем, я открыл gmail.com.Теперь я хочу ввести имя пользователя и пароль.Но когда я нажму на этот текстовый элемент веб-страницы, какое событие я должен обработать, чтобы вывести свою клавиатуру, чтобы пользователь мог ее использовать?И куда именно я отправлю этот текст, сгенерированный с клавиатуры, для его установки в поле имени пользователя на этой странице?

1 Ответ

0 голосов
/ 17 июля 2012

Вы можете изменить значение текстового поля, оценив некоторый пользовательский код JavaScript в WebView:

webViewId.evaluateJavaScript("document.getElementById('textInputId').value = '" + yourValueString + "'")

Документация здесь .

Edit: Для активации клавиатуры вы можете обратиться к свойству javaScriptWindowObjects : вы можете активировать его, например, в событии body onload или в текстовом поле onfocus event.

Edit2: Я добавляю простой пример, чтобы объяснить, что я пытаюсь сказать:

Я предполагаю, что у вас есть пользовательский элемент QML с именем Keyboard, и что этот элемент имеет сигнал onKeyPress, вызываемый при каждом нажатии клавиши.

Ваш код должен выглядеть примерно так:

WebView {
    id: webViewId
    javaScriptWindowObjects: QtObject {
        WebView.windowObjectName: "qml"

        function showKeyboard {
            keyboardId.opacity = 1;
        }
    }

    onLoadFinished: {
        evaluateJavaScript("document.getElementById('textInputId').onfocus = window.qml.showKeyboard;")
    }
}

Keyboard {
    id: keyboardId
    opacity: 0

    onKeyPress: {
        webViewId.evaluateJavaScript("document.getElementById('textInputId').value += '" + keyValue + "'")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...