2007-12-26 HE This days I tried tcl/tk 8.5 the first time. Here my experiences with 8.5.0 on Windows XP with eTcl.
:-) nice, good, I like it; :-| neutral; :-( not so good, I don't like it, makes additional work:
checkbutton .c1 -variable c1 -onvalue a -offvalue b -tristatevalue c checkbutton .c2 -variable c2 -onvalue a -offvalue b pack .c1 .ce -side left set c1 a ;# .c1 checked (on) set c1 b ;# .c1 unchecked (off) set c1 c ;# .c1 checked with grey background (tristate) set c2 a ;# .c2 checked (on) set c2 b ;# .c2 unchecked (off) unset c2 ;# .c2 checked with fill-dot check (tristate) [JH] - as noted above
time {foreach {a b c} [list de da lus] {break}} 1000 2.396 microseconds per iteration time {lassign [list de da lus] a b c} 1000 1.632 microseconds per iteration
proc a {} { foreach {a b c} [list de da lus] {break} return } proc b {} { lassign [list de da lus] a b c return } time {a} 1000 1.643 microseconds per iteration time {b} 1000 1.234 microseconds per iteration
ttk::treeview -show tree pack .t -fill both -expand 1 .t insert {} end -id 1 -text de .t insert 1 end -id 3 -text da .t insert 1 end -id 4 -text lus .t insert 4 end -id 5 -text ika .t insert 4 end -id 6 -text rus .t insert {} end -id 2 -text foo
This are my personal first impression. And it covers only a small part of the new features.
AM This seems a good place to add a link to Mark Roseman's overview of Tcl/Tk 8.5: [L1 ]
2007-12-26 HE Some new impression:
time {if {[lsearch -exact [list de da lus] {da}]!=-1} {}} 1000 1.134 microseconds per iteration time {if {{da} in [list de da lus]} {}} 1000 0.701 microseconds per iteration proc c {} { if {[lsearch -exact [list de da lus] {da}]!=-1} {} return } proc d {} { if {{da} in [list de da lus]} {} return } time {c} 1000 1.417 microseconds per iteration time {d} 1000 1.05 microseconds per iteration time {if {[lsearch -exact [list de da lus] {da}]==-1} {}} 1000 1.132 microseconds per iteration time {if {{da} ni [list de da lus]} {}} 1000 0.695 microseconds per iteration proc c {} { if {[lsearch -exact [list de da lus] {da}]==-1} {} return } proc d {} { if {{da} ni [list de da lus]} {} return } time {c} 1000 1.487 microseconds per iteration time {d} 1000 1.05 microseconds per iteration
unset n time {if {![info exists n]} {set n 0};incr n} 1000 0.678 microseconds per iteration unset n time {if {![info exists n]} {set n 1} else {incr n}} 1000 0.655 microseconds per iteration unset n time {incr n} 8 microseconds per iteration unset n proc e {} { if {![info exists n]} {set n 0};incr n return } proc f {} { if {![info exists n]} {set n 1} else {incr n} return } proc g {} { incr n return } time {e} 1000 0.921 microseconds per iteration time {f} 1000 0.803 microseconds per iteration time {g} 1000 1.864 microseconds per iteration
IDG Dec. 28, 2007. tk_messageBox seems to use ttk buttons by default. This is ... surprising. Is there a simple way to cause reversion to the traditional look?