我正在使用电视机上的远程控制器运行嵌入式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,所以这是一个极端(我不知道会起作用)。