脚本
#!/usr/local/bin/wish -f ;#start wish and pass this script for parsing.
global sb so x1 y1 lw ;#declare some globals
frame .fr -width 24c -height 13.6c -bd 2 ;#main frame
pack .fr
wm title . "Canvas"
frame .fr.menubar -relief raised -bd 2
pack .fr.menubar -padx 1 -fill x
frame .fr.panl -width 3.6c -height 12.8c -bg black
frame .cfr -width 20.4c -height 12.4c -bd 1
pack .fr.panl .cfr -in .fr -side left -padx 2 -after .fr.menubar -fill x
canvas .can -width 20c -height 12.0c -bg grey -xscrollcommand ".xs set" \
-yscrollcommand ".ys set"
scrollbar .ys -command ".can yview"
pack .can .ys -in .cfr -side left -fill x -fill y
scrollbar .xs -orient horizontal -command ".can xview"
place .xs -in .fr -x 3.8c -y 13.3c -width 20.2c
#fill the top menu
menubutton .fr.menubar.file -text File -underline 0 -menu .fr.menubar.file.menu
menubutton .fr.menubar.edit -text Edit -underline 0 -menu .fr.menubar.edit.menu
menubutton .fr.menubar.graphics -text Graphics -underline 0 -menu \
.fr.menubar.graphics.menu
pack .fr.menubar.file .fr.menubar.edit .fr.menubar.graphics -side left
menubutton .fr.menubar.help -text Help -underline 0
pack .fr.menubar.help -side right
#File menu
menu .fr.menubar.file.menu
.fr.menubar.file.menu add command -label Print -command {printCanvas}
.fr.menubar.file.menu add command -label Quit -command exit
#Edit menu
menu .fr.menubar.edit.menu
.fr.menubar.edit.menu add command -label Cut -com {CutSelection}
.fr.menubar.edit.menu add command -label Clear -com {clearCanvas}
#Graphics menu
menu .fr.menubar.graphics.menu
.fr.menubar.graphics.menu add cascade -label "Line Width" \
-menu .fr.menubar.graphics.menu.fmenu
#Second level menu for Line Width
menu .fr.menubar.graphics.menu.fmenu
.fr.menubar.graphics.menu.fmenu add radiobutton -label "0.5" \
-com {set lw 0.5}
.fr.menubar.graphics.menu.fmenu add radiobutton -label "2.0" \
-com { set lw 2.0 }
set lw 1.0
上述脚本建立一个标题是 "canvas"的 Tk 应用主窗口,它拥有一个主框架".fr"。
主框架包括三个框架组件 - ".fr.menubar"是给顶层菜单条的的框架,框架".fr.panl"放置在菜单条的下面并包装在第三个框架".cfr"的左面。注意这个主框架和".fr.panl" 、".cfr" 的宽度和长度的单位是厘米。
建立 Tk 画布组件".can" 作为主(应用的根)窗口的子窗口并放置在".cfr"中。建立滚动条".xs" (水平)和 ".ys" (垂直)并与画布组件相连接。
顶层菜单包括四个菜单按钮,它们的标签是"File"、"Edit"、"Graphics"和"Help"。"File"的菜单条目有 Print 和 Quit,它们的关联动作是 printCanvas 和 exit;"Edit" 的菜单条目有 Cut 和 Clear,它们的关联动作是 CutSelection 和 clearCanvas。"Graphics" 支持另一个层次的菜单,来给绘图基本操作设置 line width。
图形用户界面的结果将类似于: