Ruby/TkではTkCanvasクラスが相当します.
使用例を示します.
#!/usr/local/bin/ruby require 'tk' canvas = TkCanvas.new(nil, 'height' => 400, 'width' => 400) canvas.pack('side' => 'top') TkcOval.new(canvas, 50,50, 170,150, 'outline' => 'blue', 'width' => 5) TkcArc.new(canvas, 70, 300, 200, 390, 'start' => 90, 'extent' => 135, 'style' => 'pieslice', 'outline' => 'red', 'fill' => 'gray25', 'width' => 5) TkcRectangle.new(canvas, 240, 40, 320, 100, ) TkcPolygon.new(canvas, 10,210, 100,210, 130,250, 40, 290, 20, 310, 'fill' => 'darkgreen', 'outline' => 'yellow', 'width' => 10) TkcLine.new(canvas, 230, 330, 270, 390, 320, 300, 380, 370, 'arrow' => 'both') TkcText.new(canvas, 250,290, 'text' => "この様にテキストも\n入力できます.", 'fill' => 'red' ) TkcImage.new(canvas, 290, 190, 'image' => TkPhotoImage.new('file' => '~kajiyama/WWW/fig/sample.gif')) TkcWindow.new(canvas, 160,190, 'window' => TkButton.new(nil, 'text' => 'button', 'command' => proc{print "hello world\n"}) ) Tk.mainloop上記のプログラムを走らせると,下のようになります.このように様々なものが描けます.また,中央付近のボタンはクリックすると,通常のボタンと同じようにプロンプトに出力します.
TkCanvasクラスのインスタンス変数およびメソッドを以下に示します.
インスタンス変数名 | 役割 |
---|---|
background | 背景色. |
borderwidth | 枠の幅.整数値で指定. |
cursor | マウスカーソルの形. |
highlightcolor | ウィジェットにフォーカスがある時の枠の色. |
highlightthickness | ウィジェットにフォーカスがある時の枠の幅. |
insertbackground | カーソルの背景色 |
insertborderwidth | カーソルの境界線の幅 |
insertofftime | カーソル点滅(OFF)の時間(msec) |
insertontime | カーソル点滅(ON)の時間(msec) |
insertwidth | カーソルの幅 |
relief | ウィジェットの凹凸.'raised'または'sunken'で指定. |
selectbackground | セレクト時の背景色. |
selectborderwidth | セレクト時の枠の太さ. |
selectforeground | セレクト時の前景色. |
xscrollcommand | 横スクロールバーを連動させるときに使用します.詳説はScrollbarで. |
yscrollcommand | 縦スクロールバーを連動させるときに使用します.詳説はScrollbarで. |
height | キャンバスの高さ. |
width | キャンバスの幅. |
confine | scrollregionによって指定された部分を,キャンバスの表示されているところの外側に設定できるか.論理値で指定します. |
scrollregion | canvasの仮想的な長方形領域を設定します, 文字列'left top right bottom'(斜体は数字でピクセル値) で指定します.例:'0 0 1200 1600' |