Here is a script to display each widget available in Tk. It made the assumption that all widgets begin with a lowercase letter.
# # the dynamic list of Tk widgets # puts " Tk version [package require Tk]" puts " ----" set tkCommands [lsort [info commands "::tk::\[a-z\]*"]] foreach cmd $tkCommands { puts [string range $cmd 6 end] } exit
It gives :
Tk version 8.5.7 ---- button canvas checkbutton entry frame label labelframe listbox mc mcmax mcmaxamp menubutton message panedwindow radiobutton scale scrollbar spinbox text toplevel
It works only with version 8.5 so far.
JH This completely misses the themed Tk widget set (::ttk::*).
LGT This script tries to correct this :
# # the dynamic list of Tk widgets # puts " Tk version [package require Tk]" puts " ----" set tkCommands [lsort [info commands "::tk::\[a-z\]*"]] set ttkCommands [lsort [info commands "::ttk::\[a-z\]*"]] set allCommands {} foreach cmd $tkCommands { lappend allCommands [string range $cmd 2 end] } foreach cmd $ttkCommands { lappend allCommands [string range $cmd 2 end] } foreach cmd $allCommands { puts $cmd } exit
It gives :
Tk version 8.5.7 ---- tk::button tk::canvas tk::checkbutton tk::entry tk::frame tk::label tk::labelframe tk::listbox tk::mc tk::mcmax tk::mcmaxamp tk::menubutton tk::message tk::panedwindow tk::radiobutton tk::scale tk::scrollbar tk::spinbox tk::text tk::toplevel ttk::button ttk::checkbutton ttk::clickToFocus ttk::combobox ttk::copyBindings ttk::cursor ttk::deprecated ttk::deprecated'warning ttk::do'deprecate ttk::entry ttk::focusFirst ttk::frame ttk::globalGrab ttk::grabWindow ttk::label ttk::labelframe ttk::menubutton ttk::notebook ttk::paned ttk::panedwindow ttk::progressbar ttk::radiobutton ttk::releaseGrab ttk::scale ttk::scrollbar ttk::separator ttk::setCursor ttk::setTheme ttk::sizegrip ttk::style ttk::takefocus ttk::takesFocus ttk::themes ttk::traverseTo ttk::treeview