dialog-style programs main-window-style programs introduction to gui programming |||python has no native support for gui (graphical user interfaceprogrammingbut this isn' problem since many gui libraries written in other languages can be used by python programmers this is possible because many gui libraries have python wrappers or bindings--these are packages and modules that are imported and used like any other python packages and modules but which access functionality that is in non-python libraries under the hood python' standard library includes tcl/tk--tcl is an almost syntax-free scripting language and tk is gui library written in tcl and python' tkinter module provides python bindings for the tk gui library tk has three advantages compared with the other gui libraries that are available for python firstit is installed as standard with pythonso it is always availablesecondit is small (even including tcl)and thirdit comes with idle which is very useful for experimenting with python and for editing and debugging python programs unfortunatelyprior to tk tk had very dated look and very limited set of widgets ("controlsor "containersin windows-speakalthough it is fairly easy to create custom widgets in tk by composing other widgets together in layouttk does not provide any direct way of creating custom widgets from scratch with the programmer able to draw whatever they want additional tkcompatible widgets are available using the ttk library (only with python and tk and laterand the tix library--these are also part of python' standard library note that tix is not always provided on non-windows platformsmost notably ubuntuwhich at the time of this writing offers it only as an unsupported add-onso for maximum portability it is best to avoid using tix altogether the python-oriented documentation for tkttkand tix is rather sparse--most of the documentation for these libraries is written for tcl/tk programmers and may not be easy for non-tcl programmers to decipher