|
|
|
|
|
|
|
|
|
if {![info exists widgetDemo]} { |
|
error "This script should be run from the \"widget\" demo." |
|
} |
|
|
|
package require Tk |
|
|
|
set w .combo |
|
catch {destroy $w} |
|
toplevel $w |
|
wm title $w "Combobox Demonstration" |
|
wm iconname $w "combo" |
|
positionWindow $w |
|
|
|
ttk::label $w.msg -font $font -wraplength 5i -justify left -text "Three different\ |
|
combo-boxes are displayed below. You can add characters to the first\ |
|
one by pointing, clicking and typing, just as with an entry; pressing\ |
|
Return will cause the current value to be added to the list that is\ |
|
selectable from the drop-down list, and you can choose other values\ |
|
by pressing the Down key, using the arrow keys to pick another one,\ |
|
and pressing Return again. The second combo-box is fixed to a\ |
|
particular value, and cannot be modified at all. The third one only\ |
|
allows you to select values from its drop-down list of Australian\ |
|
cities." |
|
pack $w.msg -side top -fill x |
|
|
|
|
|
set btns [addSeeDismiss $w.buttons $w {firstValue secondValue ozCity}] |
|
pack $btns -side bottom -fill x |
|
|
|
ttk::frame $w.f |
|
pack $w.f -fill both -expand 1 |
|
set w $w.f |
|
|
|
set australianCities { |
|
Canberra Sydney Melbourne Perth Adelaide Brisbane |
|
Hobart Darwin "Alice Springs" |
|
} |
|
set secondValue unchangable |
|
set ozCity Sydney |
|
|
|
ttk::labelframe $w.c1 -text "Fully Editable" |
|
ttk::combobox $w.c1.c -textvariable firstValue |
|
ttk::labelframe $w.c2 -text Disabled |
|
ttk::combobox $w.c2.c -textvariable secondValue -state disabled |
|
ttk::labelframe $w.c3 -text "Defined List Only" |
|
ttk::combobox $w.c3.c -textvariable ozCity -state readonly \ |
|
-values $australianCities |
|
bind $w.c1.c <Return> { |
|
if {[%W get] ni [%W cget -values]} { |
|
%W configure -values [concat [%W cget -values] [list [%W get]]] |
|
} |
|
} |
|
|
|
pack $w.c1 $w.c2 $w.c3 -side top -pady 5 -padx 10 |
|
pack $w.c1.c -pady 5 -padx 10 |
|
pack $w.c2.c -pady 5 -padx 10 |
|
pack $w.c3.c -pady 5 -padx 10 |
|
|