2017-12-04 17 views
1

Androidネイティブ仮想キーボードを使用している場合、QLineEditは入力されたすべての単語を取得できません。 (Qtの5.7、アンドロイド6)QLineEdit :: textがAndroid仮想キーボードで不完全です

(絵のように)私は入力 "フォース入力" の場合と

QLineEdit::text() 

を呼び出すには、私が唯一の "フォース" を得ます。

本文全体を取得するにはどうすればよいですか?

enter image description here

答えて

1

問題は、「入力」が依然として入力/型付けされた(下線を注意)、まだアプリケーションにコミットされていないことです。 QInputMethod::commitを使用してすべてをコミットするように強制できます。

現在、ユーザーがエディタを構成中です。 関数は、テキスト予測 機能を持つ入力メソッドと、 文字を入力するためのスクリプトが、実際にはエディタに に追加されるスクリプトと異なるメソッドで必要となります。 を構成するテキストを中断するアクションは、たとえばカーソルが他の場所に移動したときに、commit()関数、つまり を呼び出すことによって合成状態をフラッシュする必要があります。

その後、QLineEdit::textを使用してすべてのテキストを取得できるはずです。代替

QLineEdit::displayText

としては、最初QInputMethod::commitを呼び出さずQLineEdit::displayTextを使用することも可能で、hereを議論しました。

+1

'にQL​​ineEdit :: displayText'は助けにはならなかったが、この決定は ' QInputMethodは*入力=はQApplication :: inputMethod()私を助けた; '' 入力 - >は(コミット); ' ありがとう! –

関連する問題