2012年1月20日金曜日

Racket(Scheme)でGUI


Racketでウィンドウを表示し、線を引いてみます.
"draw"ボタンをクリックするたびにランダムな色と位置で線が表示されます.



#lang racket

(require racket/gui/base
srfi/27)

(define frame
(new frame%
[label "Example"]
[width 300]
[height 300]))
(define cvs (new canvas% [parent frame]))
(define pen-styles
'(transparent solid xor hilite dot long-dash
short-dash dot-dash xor-dot
xor-long-dash xor-short-dash
xor-dot-dash))

(define btn
(new button% [parent frame]
[label "draw"]
[callback
(lambda (b e)
(let ((dc (send cvs get-dc)))
(let-values (((x y) (send cvs get-virtual-size)))
(send dc set-pen
(make-object color%
(random-integer 255)
(random-integer 255)
(random-integer 255))
2
(list-ref pen-styles
(random-integer (length pen-styles))))
(send dc draw-line
(random-integer x) (random-integer y)
(random-integer x) (random-integer y)))))]))

(send frame show #t)

0 件のコメント:

コメントを投稿