私は、テレビのリモコンで実行される埋め込み Webkit ブラウザー (Linux で Qt 4.8.0 を使用) に取り組んでいます。これまでのところほとんどすべてが機能しており、現在<input>
、Web ページでタグを処理しようとしています。
私がやりたいことは、入力フィールドが選択されるたびに、仮想キーボードをポップして、ユーザーがリモコンでテキストを入力できるようにしてから、結果を にプッシュバックすることです。
私はそれを行うためにすでにいくつかの方法を試しました:
- このチュートリアルを使用してQInputContextをインストールします。インストールした InputContext を通過するイベントがありません。
- ブラウザのさまざまな段階でさまざまな再実装
eventFilter()
を行います (QApp、QGraphicsWebPage、QGraphicsWebView 内): LOADS のイベントが表示されますが、興味のあるイベントは表示されません (QEvent::RequestSoftwareInputPanel
/QEvent::CloseSoftwareInputPanel
/FocusIn
/FocusOut
/Enter
/Leave
)。 - を使用
installSceneEventFilter()
すると、前のポイントと同じ結果が得られます。
私はマウスを使用していないので、「マウス ホバー」や「マウス クリック」などのイベントを処理して、<input>
要素がフォーカスされているかどうかを判断することはできません。
だから私はどのように<input>
ウェブページに接続して、フォーカスがいつそこに到達したかを検出できるのだろうかと思っています。ページ内の Javascript スクリプトを介して<input>
フィールドが動的に挿入された場合でも、これは機能する必要があると思います。
接続できる Qt 信号はありますか?
動的に挿入された新しい入力フォームを処理するには?
まだ検討していない可能な解決策:QT_KEYPAD_NAVIGATION
アーチに mkspecs を使用し、通過する QEvent::EnterEditFocus をフィルター処理します。私はむしろ今持っているバニラ Qt に固執したいので、それは極端です (うまくいくかどうかはわかりません)。