| |
| |
| |
|
|
| 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 |
|
|