我正在使用電視機上的遠程控制器運行嵌入式Webkit瀏覽器(在Linux上使用Qt 4.8.0)。 我幾乎所有工作到目前爲止,我現在試圖處理網頁中的<input>
標記。QtWebkit:如何掛接<input>字段上的虛擬鍵盤
我想要發生的是:每當選擇輸入字段時,我想彈出我的虛擬鍵盤,並讓用戶用他的遙控器輸入文本,然後將結果推回。
我嘗試了幾種方法已經做到這一點:
- 使用this tutorial安裝QInputContext:我沒有看到事件經過我安裝了InputContext。
- 重新實現各種
eventFilter()
在我的瀏覽器的不同階段(在QApp,在QGraphicsWebPage,在QGraphicsWebView):我看到事件的負荷,但從來沒有的那些我感興趣的(QEvent::RequestSoftwareInputPanel
/QEvent::CloseSoftwareInputPanel
/FocusIn
/FocusOut
/Enter
/Leave
)。 - 使用
installSceneEventFilter()
給出了與前一點相同的結果。
因爲我不使用鼠標,我不能處理像「鼠標懸停」或事件「鼠標單擊」確定是否<input>
元素集中。
所以我想知道如何連接到網頁中的任何<input>
來檢測焦點何時到達它。請注意,即使<input>
字段是動態通過頁面中的JavaScript腳本插入,我想這必須工作。
有沒有可以連接的Qt信號?
如何處理動態插入的新輸入表單?
可能的解決方案我還沒有探索:使用mkspecs中的QT_KEYPAD_NAVIGATION
作爲我的拱門,然後過濾應該通過的QEvent :: EnterEditFocus。我寧願堅持我現在擁有的香草Qt,所以這是一個極端(我不知道會起作用)。