Jos Decoster wrote in [the comp.lang.tcl newsgroup]: When not using canvas widgets, I sometimes use the following to change the fonts of a running application: # Put your favourite fonts here set font(Button) {Helvetica -12 bold} set font(Checkbutton) {Helvetica -12 bold} set font(Radiobutton) {Helvetica -12 bold} set font(Label) {Helvetica -12 bold} set font(Entry) {Helvetica -12} set font(Listbox) {Helvetica -12 bold} set font(Menuentry) {Helvetica -12 bold} set font(Menu) {Helvetica -12 bold} set font(Menubutton) {Helvetica -12 bold} set font(Message) {Helvetica -12 bold} set font(Scale) {Helvetica -12 bold} set font(Text) {Courier -12} proc refont_tree { path } { global font foreach child [winfo children $path] { set childtype [winfo class $child] if { [info exists font($childtype)] } { if {[catch {$child configure -font $font($childtype)} msg] } { puts stderr "$child ($childtype) ERROR: $msg" } } refont_tree $child } } refont_tree . ---- ''[MGS]'' - Wouldn't it be better to create a named font for each widget class, and then use the options database to 'apply' each font to that class? e.g. foreach class { Button Checkbutton Entry Label Listbox Menu Menubutton Message Radiobutton Scale } { font create $class -family Helvetica -size 12 option add *$class.font $class widgetDefault } font create Text -family courier -size 12 option add *Text.font Text widgetDefault See also: [font scaling] ---- ''[LV]'' - Is there a way to introspectively determine the list of classes, so as to be able to handle additional extensions, etc.? ''[MGS]'' - Yes, that certainly would be useful. ---- [Arts and Crafts of Tcl-Tk Programming]