前のページ 次のページ 目次

11. キャンバスにはどうやって?

11.1 キャンバスにビットマップを表示するには?

canvar = TkCanvas.new
TkcBitmap.new(canvar, 50, 50,
             'bitmap' => '@/usr/local/lib/tk4.2jp/demos/images/letters.bmp')
canvar.pack

11.2 表示したのを消すには?

canvar.delete(bittag)

11.3 キャンバスにイメージを表示するには?



#!/usr/local/bin/ruby

require "tk"

canvas = TkCanvas.new
image = TkPhotoImage.new('file' => '/usr/local/lib/tk4.2jp/demos/images/earth.gif')
TkcImage.new(canvas, 50, 50,
                         'image' => image)
canvas.pack

Tk.mainloop

11.4 キャンバス上にどのようなものが描画できますか?

 arc        sections of circle
 bitmap     for X11 bitmap files/builtins
 image      for Photo image types (gif, xpm, xbm, ...) 
 line
 oval       includes circles
 polygon    may be -filled
 rectangle  may also be -filled
 text       similar to Text widget primitive
 window     allows embeddding of other widgets

11.5 キャンバス上に線を再描画するには?



#!/usr/local/bin/ruby

require "tk"

def push_it(line)
  line.coords 0, 0, 100, 100
end

c = TkCanvas.new
i = TkcLine.new(c, 0, 0, 50, 50)
c.pack

TkButton.new {
  text 'extend'
  command proc { push_it i}
}.pack

Tk.mainloop

11.6 キャンバスのデータを PostScript(c)に出力するには?



#!/usr/local/bin/ruby

require "tk"

min_x = 0
min_y = 0

c = TkCanvas.new
i = TkcLine.new(c, 0, 0, 50, 50)
c.pack

ps = c.postscript('x' => min_x,
                         'y' => min_y,
                         'width' => c.cget('width'),
                         'height' => c.cget('height'))

f = open('file.ps', 'w')
f.print ps
f.close

Tk.mainloop

11.7 キャンバスの大きさを表示するには? リサイズ後は?

canvas.cget('width')


前のページ 次のページ 目次