0

私はQtで仕事をしています。私はアンドロイドを使用していません。これは、windows/linux で実行されている単なるデスクトップ アプリケーションです。どのコンポーネント (ウィジェットまたはフォームに配置されている) が現在フォーカスされているかを知るにはどうすればよいですか?

QLineEdit、QTextEdit、またはQPlainTextEditがフォーカスされたときに表示され、これらがフォーカスを失ったときに非表示になるオンスクリーンキーボードがあります。 show.I just want to stop this.

4

1 に答える 1

1

ウィジェットの送信元と送信先のウィジェットが似ているときにキーボードがちらつくのを止めたい場合は、おそらくタイマーを実装できます。キーボードを隠しているコードへのフォーカス信号が失われていると思います。本当に隠す代わりに、次のようにタイマーを開始できます

QTimer::singleShot(500, this, SLOT(really_close_keyb()));

その really_close_keyb() スロット内で、現在フォーカスがあるウィジェットにキーボードが必要かどうかを確認するコードを実装できます。必要な場合は非表示にしないでください。

これにより、ユーザーが行の編集に集中した後、キーボードが 0.5 秒間アップし、キーボードを失うことなく別の行の編集に集中するのに十分な時間が与えられます。タイミングは適宜調整してください。

于 2013-08-22T09:41:31.990 に答える