spinbox.tcl
来自「一个跨平台的TCL/TK可视开发环境类似VC. TCL/TK是一个跨平台的脚本」· TCL 代码 · 共 466 行 · 第 1/2 页
TCL
466 行
set set,origin 1
set set,size 0
set runvisible 1
}
namespace eval ::widgets::$base.lab74 {
array set save {-anchor 1 -background 1 -justify 1 -text 1}
}
namespace eval ::widgets::$base.spi75 {
array set save {-increment 1 -textvariable 1 -to 1}
}
namespace eval ::widgets::$base.fra76 {
array set save {-borderwidth 1 -height 1 -width 1}
}
set site_3_0 $base.fra76
namespace eval ::widgets::$site_3_0.lab78 {
array set save {-text 1}
}
namespace eval ::widgets::$site_3_0.ent79 {
array set save {-background 1 -textvariable 1}
}
namespace eval ::widgets::$site_3_0.but80 {
array set save {-command 1 -pady 1 -text 1}
}
namespace eval ::widgets::$site_3_0.lab81 {
array set save {-text 1}
}
namespace eval ::widgets::$site_3_0.ent82 {
array set save {-background 1 -textvariable 1}
}
namespace eval ::widgets::$site_3_0.but83 {
array set save {-command 1 -pady 1 -text 1}
}
namespace eval ::widgets::$site_3_0.lab84 {
array set save {-justify 1 -text 1}
}
namespace eval ::widgets::$site_3_0.ent85 {
array set save {-background 1 -textvariable 1}
}
namespace eval ::widgets::$site_3_0.but86 {
array set save {-command 1 -pady 1 -text 1}
}
namespace eval ::widgets_bindings {
set tagslist _TopLevel
}
namespace eval ::vTcl::modules::main {
set procs {
init
main
}
set compounds {
}
}
}
}
#################################
# USER DEFINED PROCEDURES
#
#############################################################################
## Procedure: main
proc ::main {argc argv} {
# the initial value
Toplevel1 setvar spinValue 1
Toplevel1 setvar from 0
Toplevel1 setvar to 100
Toplevel1 setvar increment 1
}
#############################################################################
## Initialization Procedure: init
proc ::init {argc argv} {}
init $argc $argv
#################################
# VTCL GENERATED GUI PROCEDURES
#
proc vTclWindow. {base} {
if {$base == ""} {
set base .
}
###################
# CREATING WIDGETS
###################
wm focusmodel $top passive
wm geometry $top 200x200+66+75; update
wm maxsize $top 1284 1006
wm minsize $top 111 1
wm overrideredirect $top 0
wm resizable $top 1 1
wm withdraw $top
wm title $top "vtcl"
bindtags $top "$top Vtcl all"
vTcl:FireEvent $top <<Create>>
wm protocol $top WM_DELETE_WINDOW "vTcl:FireEvent $top <<DeleteWindow>>"
###################
# SETTING GEOMETRY
###################
vTcl:FireEvent $base <<Ready>>
}
proc vTclWindow.top72 {base} {
if {$base == ""} {
set base .top72
}
if {[winfo exists $base]} {
wm deiconify $base; return
}
set top $base
###################
# CREATING WIDGETS
###################
vTcl:toplevel $top -class Toplevel
wm focusmodel $top passive
wm geometry $top +294+428; update
wm maxsize $top 1284 1006
wm minsize $top 111 1
wm overrideredirect $top 0
wm resizable $top 1 1
wm deiconify $top
wm title $top "Spinbox"
vTcl:DefineAlias "$top" "Toplevel1" vTcl:Toplevel:WidgetProc "" 1
bindtags $top "$top Toplevel all _TopLevel"
vTcl:FireEvent $top <<Create>>
wm protocol $top WM_DELETE_WINDOW "vTcl:FireEvent $top <<DeleteWindow>>"
label $top.lab74 \
-anchor w -background #ececebf98e27 -justify left \
-text {Spinboxes allow to set a number either by typing it in an entry box,
or by using up/down arrows to adjust the value.}
vTcl:DefineAlias "$top.lab74" "Label1" vTcl:WidgetProc "Toplevel1" 1
spinbox $top.spi75 \
-increment 1.0 -textvariable "$top\::spinValue" -to 100.0
vTcl:DefineAlias "$top.spi75" "Spinbox1" vTcl:WidgetProc "Toplevel1" 1
frame $top.fra76 \
-borderwidth 2 -height 75 -width 125
vTcl:DefineAlias "$top.fra76" "Frame1" vTcl:WidgetProc "Toplevel1" 1
set site_3_0 $top.fra76
label $site_3_0.lab78 \
-text {The "-from" option is the minimum value:}
vTcl:DefineAlias "$site_3_0.lab78" "Label2" vTcl:WidgetProc "Toplevel1" 1
entry $site_3_0.ent79 \
-background white -textvariable "$top\::from"
vTcl:DefineAlias "$site_3_0.ent79" "Entry1" vTcl:WidgetProc "Toplevel1" 1
button $site_3_0.but80 \
-command {Spinbox1 configure -from [Toplevel1 setvar from]} -pady 0 \
-text Set
vTcl:DefineAlias "$site_3_0.but80" "Button1" vTcl:WidgetProc "Toplevel1" 1
label $site_3_0.lab81 \
-text {The "-to" option is the maximum value:}
vTcl:DefineAlias "$site_3_0.lab81" "Label3" vTcl:WidgetProc "Toplevel1" 1
entry $site_3_0.ent82 \
-background white -textvariable "$top\::to"
vTcl:DefineAlias "$site_3_0.ent82" "Entry2" vTcl:WidgetProc "Toplevel1" 1
button $site_3_0.but83 \
-command {Spinbox1 configure -to [Toplevel1 setvar to]} -pady 0 \
-text Set
vTcl:DefineAlias "$site_3_0.but83" "Button2" vTcl:WidgetProc "Toplevel1" 1
label $site_3_0.lab84 \
-justify right \
-text {The "-increment" option is how much the value changes
when you click the up or down arrow:}
vTcl:DefineAlias "$site_3_0.lab84" "Label4" vTcl:WidgetProc "Toplevel1" 1
entry $site_3_0.ent85 \
-background white -textvariable "$top\::increment"
vTcl:DefineAlias "$site_3_0.ent85" "Entry3" vTcl:WidgetProc "Toplevel1" 1
button $site_3_0.but86 \
-command {Spinbox1 configure -increment [Toplevel1 setvar increment]} \
-pady 0 -text Set
vTcl:DefineAlias "$site_3_0.but86" "Button3" vTcl:WidgetProc "Toplevel1" 1
grid $site_3_0.lab78 \
-in $site_3_0 -column 0 -row 0 -columnspan 1 -rowspan 1 -padx 5 \
-pady 5 -sticky e
grid $site_3_0.ent79 \
-in $site_3_0 -column 1 -row 0 -columnspan 1 -rowspan 1
grid $site_3_0.but80 \
-in $site_3_0 -column 2 -row 0 -columnspan 1 -rowspan 1 -padx 5 \
-pady 5
grid $site_3_0.lab81 \
-in $site_3_0 -column 0 -row 1 -columnspan 1 -rowspan 1 -padx 5 \
-pady 5 -sticky e
grid $site_3_0.ent82 \
-in $site_3_0 -column 1 -row 1 -columnspan 1 -rowspan 1
grid $site_3_0.but83 \
-in $site_3_0 -column 2 -row 1 -columnspan 1 -rowspan 1 -padx 5 \
-pady 5
grid $site_3_0.lab84 \
-in $site_3_0 -column 0 -row 2 -columnspan 1 -rowspan 1 -padx 5 \
-pady 5 -sticky e
grid $site_3_0.ent85 \
-in $site_3_0 -column 1 -row 2 -columnspan 1 -rowspan 1
grid $site_3_0.but86 \
-in $site_3_0 -column 2 -row 2 -columnspan 1 -rowspan 1 -padx 5 \
-pady 5
###################
# SETTING GEOMETRY
###################
pack $top.lab74 \
-in $top -anchor center -expand 0 -fill x -padx 5 -pady 5 -side top
pack $top.spi75 \
-in $top -anchor center -expand 0 -fill none -padx 5 -pady 5 \
-side top
pack $top.fra76 \
-in $top -anchor center -expand 0 -fill both -side top
vTcl:FireEvent $base <<Ready>>
}
#############################################################################
## Binding tag: _TopLevel
bind "_TopLevel" <<Create>> {
if {![info exists _topcount]} {set _topcount 0}; incr _topcount
}
bind "_TopLevel" <<DeleteWindow>> {
destroy %W; if {$_topcount == 0} {exit}
}
bind "_TopLevel" <Destroy> {
if {[winfo toplevel %W] == "%W"} {incr _topcount -1}
}
Window show .
Window show .top72
main $argc $argv
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?