Ruby-tk-scale
Ruby/TK-スケールウィジェット
説明
*Scale* は、長方形のトラフと小さなスライダーを表示するウィジェットです。 トラフは実際の値の範囲(from、to、および解像度オプションで決定)に対応し、スライダーの位置は特定の実際の値を選択します。
3つの注釈がスケールウィジェットに表示される場合があります-
- ウィジェットの右上(水平スケールの場合は左上)に表示されるラベル。
- スライダーのすぐ左に表示される数値(水平スケールの場合はスライダーのすぐ上)。
- 現在の値のすぐ左(水平スケールの谷のすぐ下)にある目盛りのコレクション。
これら3つの注釈はそれぞれ、構成オプションを使用して有効または無効にできます。
構文
このウィジェットを作成する簡単な構文は次のとおりです-
TkScale.new {
.....Standard Options....
.....Widget-specific Options....
}
標準オプション
- アクティブ
- バックグラウンド
- ボーダー幅
- カーソル
- font
- 前景
- ハイライト
- ハイライトカラー
- ハイライト
- オリエント
- 安心
- 繰り返し遅延
- 繰り返し間隔
- フォーカス *トラフ
これらのオプションは前の章で説明されています。
ウィジェット固有のオプション
Sr.No. | Options & Description |
---|---|
1 |
スケールとの相互作用によって、その値は_large_の増分で変化します。このオプションは、大きな増分のサイズを指定します。 0を指定すると、大きな増分はデフォルトでスケールの範囲の1/10になります。 |
2 |
メソッドを介してスケールの値が変更されるたびに呼び出すRuby/Tkコールバックのプレフィックスを指定します。 |
3 |
スケールの値を文字列に変換するときに保持する有効桁数を指定する整数。 数値がゼロ以下の場合、スケールは、考えられるすべてのスライダー位置が異なる文字列として印刷されることを保証する最小値を選択します。 |
4 |
スケールの左端または上端に対応する実際の値。 |
5 |
スケールのラベルとして表示する文字列。 垂直スケールの場合、ラベルはスケールの上端のすぐ右に表示されます。 水平スケールの場合、ラベルはスケールの左端のすぐ上に表示されます。 |
6 |
画面単位でスケールの望ましい長さを指定します |
7 |
スケールの解像度を指定する実際の値。 この値がゼロより大きい場合、目盛りとスケールの端点と同様に、スケールの値は常にこの値の偶数倍に丸められます。 値がゼロより小さい場合、丸めは行われません。 デフォルトは1 |
8 |
スケールの現在の値を表示するかどうかを示すブール値を指定します。 |
9 |
スライダーの長さ方向に沿って画面単位で測定される、スライダーのサイズを指定します。 |
10 |
|
11 |
state ⇒String スケールの3つの状態( normal 、 active 、または disabled )のいずれかを指定します。 |
12 |
実際の値でなければなりません。 スライダーの下または左に表示される数値の目盛り間の間隔を決定します。 0の場合、目盛りは表示されません。 |
13 |
スケールの右端または下端に対応する実際の値を指定します。 この値は、 from オプションよりも小さい場合も大きい場合もあります。 |
14 |
スケールにリンクするグローバル変数の名前を指定します。 変数の値が変更されるたびに、スケールはこの値を反映するように更新されます。 スケールがインタラクティブに操作されるたびに、変数はスケールの新しい値を反映するように変更されます。 |
15 |
トラフの希望する狭い寸法を画面単位で指定します |
スケールの操作
次のメソッドは、スケールウィジェットに使用可能です-
- * coords(?value?)* valueに対応するトラフの中心線に沿ったポイントのxおよびy座標を要素とするリストを返します。 値を省略すると、スケールの現在の値が使用されます。
- * get(?x、y?)* xとyが省略された場合、スケールの現在の値を返します。 xとyが指定されている場合、ウィジェット内のピクセル座標を提供します。コマンドは、指定されたピクセルに対応するスケール値を返します。
- * identify(x、y)* _x_および_y_で指定された座標の下にあるスケールの部分を示す文字列を返します。 戻り値 slider は、ポイントがスライダーの上にあることを意味します。 trough1 は、ポイントがスライダーの上または左のスライダーの部分の上にあることを意味します。 trough2 は、ポイントがスライダーの下またはスライダーの右側のスライダー部分の上にあることを意味します。
- * set(value)*このコマンドは、スケールの現在の値、したがってスライダーが表示される位置を変更するために呼び出されます。 値は、スケールの新しい値を提供します。 スケールが無効になっている場合、コマンドは無効です。
イベントバインディング
Ruby/Tkは、次のデフォルトの動作を与えるスケールのクラスバインディングを自動的に作成します。 垂直スケールと水平スケールで動作が異なる場合、水平動作は括弧で説明されています。
- トラフでボタン1を押すと、スケールの値が解像度オプションの値だけ増減し、スライダーがカーソルの方向に移動します。 ボタンが押されている場合、アクションは自動的に繰り返されます。
- ボタン1をスライダー上で押すと、スライダーをマウスでドラッグできます。
- Controlキーを押したままトラフでボタン1を押すと、スライダーは範囲の最後までマウスカーソルの方向に移動します。
- ボタン2を押すと、スケールの値はマウスの位置に設定されます。 ボタン2を押したままマウスをドラッグすると、スケールの値はドラッグに応じて変化します。
- 上キーと左キーは、解像度オプションの値だけスライダーを上(左)に移動します。
- 下キーと右キーは、解像度オプションの値だけスライダーを下(右)に移動します。
- Control-UpおよびControl-Leftは、bigIncrementオプションの値だけスライダーを上(左)に移動します。
- Control-DownおよびControl-Rightは、bigIncrementオプションの値だけスライダーを下(右)に移動します。
- Homeは、スライダーを範囲の上端(左)に移動します。
- [終了]は、スライダーをその範囲の下端(右)に移動します。
stateオプションを使用してスケールが無効になっている場合、上記のバインディングはいずれも効果がありません。
例
require "tk"
$scale = TkScale.new {
orient 'horizontal'
length 280
from 0
to 250
command (proc {printheight})
tickinterval 50
pack
}
def printheight
height = $scale.get()
print height, "\n"
end
Tk.mainloop
これは、次の結果を生成します-