3

2つのTextEditボックスと1つのカスタムボタンウィジェットがあります。キーボードのタブキーを使用して、次の順序でフォーカスを変更したいと思います。

TextEdit1 <-> TextEdit2 <-> Button

上記のチェーンを取得するために、ウィジェットごとに次のようなものを指定しました。

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1

ただし、私の問題は、タブのキーストロークがに引っ掛かり、TextEditナビゲートに使用できないことです。TextEditのタブを無効にして、代わりにフォーカスを変更するために使用するにはどうすればよいですか?

4

3 に答える 3

5

問題を見つけました。

デフォルトでは、キーイベントは最初にイベントを受信して​​いるアイテムに送信されます-ではありません KeyNavigation。この動作は、設定することで変更できます

KeyNavigation.priority: KeyNavigation.BeforeItem

したがって、完全なコードは次のようになります。

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1
KeyNavigation.priority: KeyNavigation.BeforeItem
于 2013-01-14T21:19:44.490 に答える
3

QmlKeys要素について読んでください。

あなたはこのようなことをすることができます:

TextEdit
{
  width : 40
  height: 40
  text  : "junk"

  Keys.onTabPressed: 
  {
      // Write logic to transfer focus to whomsoever you want
  }
}
于 2013-01-14T21:01:49.340 に答える
0

同様の問題の解決策を探しているときに、Qt Creatorでこのオプションに出くわし、問題を解決しているようです。これで、フィールドにタブ文字を挿入する代わりに、タブキーを使用してQTextEditオブジェクトから移動できます。

トピックは古く、すでに解決されているようですが、この便利でシンプルなオプションは、Qtの最新のアップデートで利用可能になったのかもしれません。わかりません。私はちょうどそれに出くわしました、そしてそれが私と同じ解決策を探している誰かに役立つことを願っています。

ここに画像の説明を入力してください

于 2017-05-31T13:46:15.610 に答える