再実装しない場合QMainWindow::showEvent()
(そのウィジェットのsetFocus()メソッドが含まれます)、ウィンドウがロードされたときに、ウィジェットを最初にフォーカスさせる方法はありますか?Qt4のフォームエディタを使用していますが、それを設定する場所が見つかりませんでした。
2 に答える
タブの順序は、QtDesignerまたはQtCreatorのDesignerコンポーネントで設定できます。タブオーダーの最初のウィジェットは、ロードに焦点を合わせる必要があります。
多くのユーザーは、キーボードのみを使用してウィジェットとコントロール間を移動できることを期待しています。Qtを使用すると、ユーザーはTabとShift+Tabキーボードショートカットを使用して入力ウィジェット間を移動できます。デフォルトのタブの順序は、ウィジェットが作成される順序に基づいています。多くのユーザーにとってこの順序で十分かもしれませんが、アプリケーションを使いやすくするために、タブの順序を明示的に指定する方がよい場合がよくあります。
タブ順序の設定
タブオーダー編集モードに入るには、[編集]メニューを開き、[タブオーダーの編集]を選択します。このモードでは、フォーム内の各入力ウィジェットは、タブ順での位置を示す番号で表示されます。したがって、ユーザーが最初の入力ウィジェットに入力フォーカスを与えてからTabキーを押すと、フォーカスは2番目の入力ウィジェットに移動します。
タブの順序は、正しい順序で各番号をクリックすることによって定義されます。最初にクリックした数字が赤に変わり、タブの順序チェーンで現在編集されている位置を示します。番号に関連付けられたウィジェットは、タブ順序チェーンの最初のウィジェットになります。別のウィジェットをクリックすると、タブ順で2番目になります。
フォームのタブの順序に満足するまで、このプロセスを繰り返します。残りのウィジェットがすでに正しい順序になっていることがわかっている場合は、すべての入力ウィジェットをクリックする必要はありません。すでに順序を設定している番号は緑色に変わり、まだクリックされていない番号は青色のままです。
間違えた場合は、任意の数字の外側をダブルクリックするか、フォームのコンテキストメニューから[再起動]を選択してやり直してください。フォームに多数のウィジェットがあり、タブ順序チェーンの途中または最後でタブ順序を変更したい場合は、任意の位置で編集できます。開始する番号を押しCtrlてクリックします。または、コンテキストメニューで[ここから開始]を選択します。
フォームエディタを使用したことはありませんが、メインウィンドウを作成した後、コードでウィジェットのsetFocusメソッドを呼び出すことができます。