【focus】コマンド
-highlightbackground -highlightcolor -highlightthickness はそれぞれフォーカスされてない時、された時、その幅で分かりやすく色分けしてみた。
チェックボタンを用意して(変数var)-takefocus 0でフォーカスが当たらないようにした。
それぞれ分かりやすいようにパックして、bindの条件を指定してやる。
ifは条件に従い、そのあとの命令を実行させるTcl命令で条件判断のこと。
.topにフォーカスされているとき「Tab」キーが押されて、もし、変数varが、なければ(!).bottomにフォーカスをあてなさい。breakでおしまい。
チェックボタンにマークが入っていると、if文は無効だから、.centerにもフォーカスが当たる。
最後のfocus .topはウィンドウが立ち上がった時、.topにフォーカスをあてなさいという指定。
ウィンドウが立ち上がると、上ボタン(.top)にフォーカスが当たっている。
「Tab」キーが押されると、下ボタン(.bottom)にフォーカスが当たっている。
チェックボタンにマークを入れると、「Tab」キーを押すとすべてのボタンにフォーカスされるようになる。
フォーカス指令は、以下のいずれかの形式を取ることができます。
focus
アプリケーションのウィンドウにフォーカスがない場合は、アプリケーションのメインウィンドウ、ディスプレイ上のフォーカスウィンドウのパス名を返します。 注:-displayofを使用して明示的にディスプレイを指定することをお勧めします。
focus ウィンドウ
アプリケーションが「現在のウィンドウ」に入力フォーカスがある場合は、「ウィンドウ」にディスプレイの表示をする。このコマンドを実行すると、 ウィンドウの入力フォーカスをリセットし、空の文字列を返します。 アプリケーションが「現在のウィンドウ」のディスプレイ上の入力フォーカスがない場合は、 「ウィンドウ」が最上位レベルのための焦点として記憶される。
focus displayof ウィンドウ
ディスプレイ含むウィンドウにフォーカスウィンドウの名前を返します。 ウィンドウの表示のためのフォーカスウィンドウがこのアプリケーションに含まれていない場合、戻り値は空の文字列です。
focus force ウィンドウ
アプリケーションが現在のディスプレイのための入力フォーカスを持っていなくても、 画面にウィンドウの表示のフォーカスを設定することができる。 このコマンドは、慎重に使用する必要があります。 通常の使用では、アプリケーションが自身のためにフォーカスを主張しなければならない。代わりにそれをfocusを与えるためにウィンドウマネージャを待つ必要があります。 ウィンドウは空の文字列の場合、コマンドは何も行いません。
focus lastfor ウィンドウ
ウィンドウと同じトップレベルのすべてのウィンドウの中で、入力フォーカスを持っている最新のウィンドウの名前を返します。その最上位に、ウィンドウがこれまでに入力フォーカスを与えなかった場合、又は最新のフォーカスウィンドウが削除された場合、トップレベルの名前が返される。 ウィンドウマネージャがトップレベルにフォーカスを与え、次回のフォーカスを合わせる入力を受け取るウィンドウです。
Tkコマンド【目次】
