エントリ(Entry)

エントリはユーザが一行の文字列を入力するために使用するウィジェットです.

Ruby/TkではTkEntryクラスが相当します.

使用例を示します.

#!/usr/local/bin/ruby

require 'tk'

var = TkVariable.new('')
entry = TkEntry.new(nil, 'textvariable' => var)
entry.pack('side' => 'top', 'fill' => 'both')
button = TkButton.new(nil, 'text' => 'print', 
		       'command' => proc{print var.value, "\n"})
button.pack('side' => 'left', 'fill' => 'both')

quitbutton = TkButton.new(nil, 'text' => 'quit',
		  'command' => proc{exit})
quitbutton.pack('side' => 'right', 'fill' => 'both')

Tk.mainloop
上記のプログラムを走らせると,最初下のようになります.

エントリをクリックしてアクティブにした後文字列を入力できます.

この後,printボタンを押すと,プロンプトに入力した文字列が出力されます.

TkEntryクラスのインスタンス変数を以下に示します.

インスタンス変数(抄)
インスタンス変数名 役割
background 背景色.
foreground 前景色.
insertbackground カーソルの背景色.
insertborderwidth カーソルのまわりの境界線の幅.
insertofftime カーソル点滅のoffの時間(単位ミリ秒).
insertontime カーソル点滅のonの時間(単位ミリ秒).
textvariable 表示する文字列変数.TkVariableオブジェクトで指定.
justify 文字列をよせる側."left","center","right"で指定.
borderwidth 枠の幅.整数値で指定.
cursor マウスカーソルの形.
highlightcolor ウィジェットにフォーカスがある時の枠の色.
highlightthickness ウィジェットにフォーカスがある時の枠の幅.
relief ウィジェットの凹凸.'raised'または'sunken'で指定.
wraplength 折り畳むときの1行の文字数.
xscrollcommand 横スクロールバーを連動させるときに使用します.詳説は後節で.
show 入力した文字列から置き換える文字."*"などを指定してパスワードに使用します.
state ボタンの状態です.'normal','active'または'disabled'で指定します.'disabled'にすると,内容が変更できません.
width ウィジェットの幅.

パスワード入力画面を作成の際はshowインスタンス変数をを利用しましょう.

#!/usr/local/bin/ruby

require 'tk'

var = TkVariable.new('')
entry = TkEntry.new(nil, 'textvariable' => var,
		    'show' => '*')
entry.pack('side' => 'top', 'fill' => 'both')
button = TkButton.new(nil, 'text' => 'print', 
		       'command' => proc{print var.value, "\n"})
button.pack('side' => 'left', 'fill' => 'both')

quitbutton = TkButton.new(nil, 'text' => 'quit',
		  'command' => proc{exit})
quitbutton.pack('side' => 'right', 'fill' => 'both')

Tk.mainloop
このプログラム上のエントリに入力した全ての文字が'*'で表示され,パスワードが第3者にもれるおそれが少なくなります.

戻る