2012-02-18 9 views
1

Qt Web Kit 1.0を使用してWebページを開きます。 qmlで書かれたキーボードがあります。このキーボードを使用して、HTMLページのテキストボックスにテキストを入力します。qmlキーボードを使用したWebページのテキスト要素の処理

私はgmail.comをオープンしました。今、私はユーザー名とパスワードを記入したいと思います。しかし、ウェブページのこのテキスト要素をクリックすると、キーボードを使用して使用するためにどのようなイベントを処理する必要がありますか?そして、このページのユーザー名フィールドに設定するために、キーボードから生成されたこのテキストをどこで正確に送信しますか?

+0

私はあなたには、いくつかのより多くの詳細を提供する必要があると思う:

あなたのコードは次のようなものでなければなりません。 QML WebView Elementを使用していますか? (http://doc.qt.nokia.com/4.7-snapshot/qml-webview.html)あるいは、あなたはC++でWebキットをやっていますか? – sidewinderguy

+0

私はブラウザを作るためにQmlだけを使いました。はい、Qml WebView要素などのQmlエンティティ。 WebView要素を使用して開かれたWebページ上の上記のフィールドをクリックすると、どのイベントが生成されるのかわかりません。 –

答えて

0

あなたはWebViewにいくつかのカスタムJavaScriptコードを評価することで、テキストフィールドの値を変更することができます。

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

ドキュメントhereを。

編集:あなたはjavaScriptWindowObjectsプロパティを参照することができ、キーボードの活性化のために :あなたは、例えば、身体onloadイベントで、またはテキストフィールドonfocusイベントで、それをアクティブにすることができます。

EDIT2: 私は私が言うことをしようとしているかを説明する簡単な例を追加します。私はあなたがKeyboardと呼ばれるQMLのカスタムアイテムを持っていると仮定し

、この項目はいつでも呼ばれる信号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 + "'") 
    } 
} 
+0

** 'body onloadイベントや、onfocusイベントのテキストフィールドなどでアクティブにすることができます。' **ユーザがテキスト入力ボックス[WEB PAGE内]をクリックしたときに、キーボードを正常に引き出す必要があります。たとえば、usernameフィールドをクリックすると、PAGEはいくつかのシグナル/イベントを生成します。どのように私はそのイベントをキャッチし、それをqmlのアクションにバインドする必要がありますか? –

+0

同様に、テキストフィールドの設定に関する他の回答については、キーボードを介して入力したこのテキスト(「my_user_name」など)をサイトの「userName」テキスト入力ボックスフィールドに割り当てる場所と方法を正確に指定できますgmail.com)? –

+0

1)QMLキーボード - > JS JS:QMLキーボードでキープレスイベントをキャッチし、 'evaluateJavaScript'を使用して、押されたキー値をテキストフィールドに追加するJSスクリプトを実行できます。 2)JSイベント - > QMLキーボードの表示: 'javaScriptWindowObjects'についてリンクしたドキュメントに、WebページJS内でいくつかのQML関数を実行するための簡単な例があります。ロードしたページを操作し、QMLキーボードを表示する関数に呼び出しを追加することができます。 –

関連する問題