Posted to tcl by CecilWesterhof at Thu Jun 28 10:19:59 GMT 2018view pretty
#!/usr/bin/env tclsh package require Tk set brewLen 7 set viewLen 10 wm resizable . 0 0 wm title . "Tea Application" ttk::notebook .nb option add *Listbox.font TkFixedFont frame .f1 listbox .f1.brew \ -exportselection 0 \ -height ${brewLen} \ -selectmode single \ -width 40 bind .f1.brew <Double-1> {makeTea %W} listbox .f1.latest \ -exportselection 0 \ -height ${brewLen} \ -state disabled \ -width 40 button .f1.btn -text Refresh -command refreshTeaList grid .f1.brew .f1.latest .f1.btn grid .f1.btn -row 1 -column 0 -columnspan 2 -pady 10 frame .f2 listbox .f2.inStock \ -exportselection 0 \ -height ${viewLen} \ -state disabled \ -width 40 button .f2.btn -text Refresh -command refreshTeaInStock grid .f2.inStock .f2.btn frame .f3 listbox .f3.outStock \ -exportselection 0 \ -height ${viewLen} \ -state disabled \ -width 40 button .f3.btn -text Refresh -command refreshTeaOutStock grid .f3.outStock .f3.btn frame .f4 listbox .f4.allTeas \ -exportselection 0 \ -height ${viewLen} \ -state disabled \ -width 40 button .f4.btn -text Refresh -command refreshTeaAll grid .f4.allTeas .f4.btn .nb add .f1 -text "Brew Tea" .nb add .f2 -text "In Stock" .nb add .f3 -text "Out Stock" .nb add .f4 -text "All Teas" pack .nb
Comments
Posted by emiliano at Thu Jun 28 12:22:15 GMT 2018 [text] [code]
you can refactor the last three tabs in a loop, as follows: foreach tab {"Tea In Stock" "Tea Out Stock" "All Teas"} \ cmd {refreshTeaInStock refreshTeaOutStock refreshTeaAll} { set f .f[string map {" " ""} $tab] frame $f listbox $f.lb button $f.btn -text Refresh -command $cmd grid $f.lb $f.btn }
Posted by CecilWesterhof at Thu Jun 28 15:03:24 GMT 2018 [text] [code]
I have done that. Thanks. I also changed the refresh function. When I want to refresh a tab, I should also refresh the other two. So I got rid of the cmd variable and use refreshAll.