アップ/ダウン/左/右/選択ボタンしかないQt/Embeddedデバイスにデータ入力画面があります。画面は、QLineEditが一番上にあり、QPushButtonsがセットされた電卓のように見えます。 UDLRボタンはQPushButtonsの周りのフォーカスを移動し、selectはボタンの番号をQLineEditに追加します。これは素晴らしいです。ただし、QLineEditにはフォーカスがないため、テキスト入力カーソルは点滅しません。 QLineEditは、仮想キーボードのボタンが押されたときの受信者のようには見えず、それは良くありません。UDLRボタンのみで動作する仮想キーボードのQtフォーカス処理
私が見た他のQt仮想キーボードの実装では、タッチまたはマウス操作であるため、キーボードボタンがフォーカスを得る必要はありません。したがって、QLineEditは、時間全体にわたってフォーカスを保持することができます。これはオプションではありません。私が今見たことのあるところは、QLineEditがユーザーが実際に仮想キーボードを操作しているときに焦点を当てていると思うように、フォーカスイベントを手動で生成することです。私は、より洗練された解決策、あるいはこの問題を回避する画面の実装を構成するための別の方法があることを期待しています。何か案は?
これは私にとって良い方法かもしれません。もう少しコードがあるとしても、手動でフォーカスイベントを 'QLineEdit'に送るよりも気持ちが良いです。 Qtには、既存のウィジェットを使用する必要があるようなサブフォーカスやデュアルフォーカスを指定する方法がないという結論に達しています。そうした場合、複雑になります。あなたのソリューションには、本当に理解しやすいという利点があります。 –
他の誰かが同じ問題を抱えている場合、私はこの記事をフォローしています。私は 'QLineEdit'を使って手動でフォーカスイベントを送信しました。なぜなら、 'QLabel'の解決策は、特に、入力ボックスがいっぱいになったときにカーソルの位置を正しく見せるようにするのは難しく、' QLineEdit'では右から左への言語の国際化のサポートがずっと簡単でした。 –
これは重要な考慮事項です。特に有用なコードがある場合は、回答として投稿することができれば良いでしょう。あなた自身の答えを "受け入れる"ことは、まったく受け入れられます:) –