2012-02-18 1 views
1

Qt Web Kit 1.0을 사용하여 웹 페이지를 엽니 다. 나는 qml로 쓰여진 키보드를 가지고있다. 이 키보드를 사용하여 HTML 페이지의 텍스트 상자에 텍스트를 채 웁니다.qml 키보드를 사용하여 웹 페이지의 텍스트 요소 처리

말, 나는 gmail.com을 열었습니다. 이제 사용자 이름과 암호를 입력하고 싶습니다. 그러나 웹 페이지의이 텍스트 요소를 클릭하면 사용자가 키보드를 사용하기 위해 어떤 이벤트를 처리해야합니까? 그리고 키보드에서 생성 된이 텍스트를 어디서 정확히 보낼 것인가? 그 페이지의 사용자 이름 필드에 설정되어 있습니까?

+0

난 당신이 좀 더 세부 사항을 제공 할 필요가 있다고 생각 :

코드는 다음과 같이해야한다. QML WebView 요소를 사용하고 있습니까? (http://doc.qt.nokia.com/4.7-snapshot/qml-webview.html) 아니면 C++로 웹킷을 만들고 있습니까? – sidewinderguy

+0

나는 브라우저를 만들기 위해 Qml 외에 아무것도 사용하지 않았다. 예, Qml WebView 요소 및 기타 Qml 엔티티. WebView 요소를 사용하여 연 웹 페이지에서 위에서 설명한 필드를 클릭하면 어떤 이벤트가 생성 될지 알 수 없습니다. –

답변

0

당신은 WebView에 일부 사용자 지정 자바 스크립트 코드를 평가하여 텍스트 필드의 값을 변경할 수 있습니다

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

문서 here합니다.

편집 : 당신은 몸 onload 경우에, 예를 들어, 활성화하거나 텍스트 필드 onfocus 이벤트에 있습니다 : 당신이 javaScriptWindowObjects 속성을 참조 할 수있는 키보드 활성화를위한 .

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 + "'") 
    } 
} 
+0

** '예를 들어, body onload 이벤트 나 텍스트 필드 onfocus 이벤트에서 활성화 할 수 있습니다.'** 사용자가 텍스트 입력 상자 [웹 페이지 내부]를 클릭 할 때 키보드를 정상적으로 가져와야합니다. 예를 들어 사용자 이름 필드를 클릭하면 PAGE가 일부 신호/이벤트를 생성합니다. 어떻게 그 이벤트를 잡아서 qml의 액션에 묶어야합니까? –

+0

마찬가지로 텍스트 필드 설정에 대한 다른 응답의 경우, 키보드를 통해 방금 입력 한이 텍스트 (예 : "my_user_name")를 사이트의 'userName'텍스트 입력 상자 필드에 지정하는 위치와 방법을 정확하게 지정할 수 있습니다 (예 : gmail.com)? –

+0

1) QML 키보드 -> JS JS : QML 키보드에서 키 누르기 이벤트를 포착하고'evaluateJavaScript'를 사용하여 눌려진 키 값을 텍스트 필드에 추가하는 JS 스크립트를 실행할 수 있습니다. JS 이벤트 -> QML 키보드 표시 :'javaScriptWindowObjects'에 링크 된 문서에는 웹 페이지 JS에서 일부 QML 함수를 실행하는 데 사용하는 간단한 예제가 있습니다. 로드 한 페이지를 조작하고 QML 키보드를 표시 할 함수에 호출을 추가 할 수 있습니다. –

관련 문제