77 lines
1.8 KiB
Tcl
77 lines
1.8 KiB
Tcl
|
# labelframe.tcl --
|
||
|
#
|
||
|
# This demonstration script creates a toplevel window containing
|
||
|
# several labelframe widgets.
|
||
|
|
||
|
if {![info exists widgetDemo]} {
|
||
|
error "This script should be run from the \"widget\" demo."
|
||
|
}
|
||
|
|
||
|
package require Tk
|
||
|
|
||
|
set w .labelframe
|
||
|
catch {destroy $w}
|
||
|
toplevel $w
|
||
|
wm title $w "Labelframe Demonstration"
|
||
|
wm iconname $w "labelframe"
|
||
|
positionWindow $w
|
||
|
|
||
|
# Some information
|
||
|
|
||
|
label $w.msg -font $font -wraplength 4i -justify left -text "Labelframes are\
|
||
|
used to group related widgets together. The label may be either \
|
||
|
plain text or another widget."
|
||
|
pack $w.msg -side top
|
||
|
|
||
|
## See Code / Dismiss buttons
|
||
|
set btns [addSeeDismiss $w.buttons $w]
|
||
|
pack $btns -side bottom -fill x
|
||
|
|
||
|
# Demo area
|
||
|
|
||
|
frame $w.f
|
||
|
pack $w.f -side bottom -fill both -expand 1
|
||
|
set w $w.f
|
||
|
|
||
|
# A group of radiobuttons in a labelframe
|
||
|
|
||
|
labelframe $w.f -text "Value" -padx 2 -pady 2
|
||
|
grid $w.f -row 0 -column 0 -pady 2m -padx 2m
|
||
|
|
||
|
foreach value {1 2 3 4} {
|
||
|
radiobutton $w.f.b$value -text "This is value $value" \
|
||
|
-variable lfdummy -value $value
|
||
|
pack $w.f.b$value -side top -fill x -pady 2
|
||
|
}
|
||
|
|
||
|
|
||
|
# Using a label window to control a group of options.
|
||
|
|
||
|
proc lfEnableButtons {w} {
|
||
|
foreach child [winfo children $w] {
|
||
|
if {$child == "$w.cb"} continue
|
||
|
if {$::lfdummy2} {
|
||
|
$child configure -state normal
|
||
|
} else {
|
||
|
$child configure -state disabled
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
labelframe $w.f2 -pady 2 -padx 2
|
||
|
checkbutton $w.f2.cb -text "Use this option." -variable lfdummy2 \
|
||
|
-command "lfEnableButtons $w.f2" -padx 0
|
||
|
$w.f2 configure -labelwidget $w.f2.cb
|
||
|
grid $w.f2 -row 0 -column 1 -pady 2m -padx 2m
|
||
|
|
||
|
set t 0
|
||
|
foreach str {Option1 Option2 Option3} {
|
||
|
checkbutton $w.f2.b$t -text $str
|
||
|
pack $w.f2.b$t -side top -fill x -pady 2
|
||
|
incr t
|
||
|
}
|
||
|
lfEnableButtons $w.f2
|
||
|
|
||
|
|
||
|
grid columnconfigure $w {0 1} -weight 1
|