Differences between revisions 105 and 146 (spanning 41 versions)
Revision 105 as of 2011-05-28 14:29:54
Size: 6231
Editor: 94-193-193-138
Comment:
Revision 146 as of 2021-02-17 11:09:08
Size: 5827
Comment: Removed a dead link. Tried to find a working version for it, but it appears the site is no longer being hosted.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Tkinter is Python's de-facto standard GUI (Graphical User Interface) package. It is a thin object-oriented layer on top of [[http://tcl.sourceforge.net/|Tcl/Tk]]. Tkinter is Python's de-facto standard GUI (Graphical User Interface) package. It is a thin object-oriented layer on top of [[http://www.tcl.tk/|Tcl/Tk]].
Line 5: Line 5:
The Tkinter wiki: http://tkinter.unpythonic.net/wiki/ Tkinter Documentation
Line 7: Line 7:
== Tkinter Documentation ==
  * [[http://www.pythonware.com/library/tkinter/introduction/|An Introduction To Tkinter]] (online) by FredrikLundh
  * [[http://infohost.nmt.edu/tcc/help/pubs/tkinter/|Tkinter reference: a GUI for Python]] (online or [[http://infohost.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf|pdf]]) by John W. Shipman, New Mexico Tech Computer Center
  * [[ISBN:1884777813|Python and Tkinter Programming]] by John Grayson (see also GuiBooks). This book just recently came back into print on demand, see the publisher's website [[http://www.manning.com/grayson]]
  * [[http://modcopy.sourceforge.net/tips.html|Tips for Python/Tk]] by Andreas Balogh (about useful documentation, GUI builders and tips using Grid and HList widgets)
  * [[http://www.astro.washington.edu/users/rowen/TkinterSummary.html|Tkinter Summary]]
  * [[http://www.astro.washington.edu/users/rowen/ROTKFolklore.html|Tkinter Folklore]]
David McNab recommended the latter two as particularly "pythonic" in not insisting that readers think in Tcl.
 * [[http://www.ferg.org/thinking_in_tkinter/index.html|Thinking in Tkinter]] is an introduction to some basic Tkinter programming concepts.

 * [[http://docs.python.org/lib/tkinter.html|Graphical User Interfaces with Tk]], a chapter from the [[http://docs.python.org/lib/lib.html|Python Library Reference]]..
 * [[ISBN:1884777813|Python and Tkinter Programming]] by John Grayson (see also GuiBooks). This book just recently came back into print on demand, see the [[http://www.manning.com/grayson|publisher's website]].
 * [[https://coderslegacy.com/python/python-gui/|Python GUI with Tkinter]] is a complete tutorial that covers all the widgets for the Tkinter library, complete with examples.
 * [[http://thinkingtkinter.sourceforge.net/|Thinking in Tkinter]] is an introduction to some basic Tkinter programming concepts.
 * [[http://www.tkdocs.com/tutorial/index.html|TkDocs Tutorial]], official Tkinter documentation that covers Python 3+ and Tk8.5, with easy to follow examples.
 * [[https://docs.python.org/3/library/tk.html|Graphical User Interfaces with Tk]], a chapter from the [[https://docs.python.org/3/index.html|Python Documentation]].
Line 20: Line 13:

 * [[http://modcopy.sourceforge.net/tips.html|Tips for Python/Tk]] by Andreas Balogh (about useful documentation, GUI builders and tips using Grid and HList widgets).
Line 23: Line 15:

 * [[http://www.tkdocs.com/tutorial/index.html|TkDocs Tutorial]], covers Python 3+ and Tk8.5, with easy to follow examples.
Line 29: Line 18:
       * ''Demo/tkinter/'' in the Python source distribution.
          This contains many helpful examples, including updated
         
versions of Matt Conway's examples.
        * ''Lib/lib-tk/Tkinter.py'' in any Python distribution.
  * ''Demo/tkinter/'' in the Python source distribution.
   . This contains many helpful examples, including updated versions of Matt Conway's examples.
Line 34: Line 21:
  * ''Lib/lib-tk/Tkinter.py'' in any Python distribution.
Line 36: Line 24:

      
* [[http://www.tcl.tk|Tcl Developer Xchange]]
       * [[http://sourceforge.net/projects/tcl|Tcl project at SourceForge]]
        * [[http://sourceforge.net/foundry/tcl-foundry|Tcl foundry at SourceForge]](2008/09/07 lost link?)
  * [[http://www.tcl.tk|Tcl Developer Xchange]]
  * [[http://sourceforge.net/projects/tcl|Tcl project at SourceForge]]
  * [[http://sourceforge.net/projects/tcl-foundry/|Tcl foundry at SourceForge]]
Line 42: Line 29:

      
* [[http://pypi.python.org/pypi/pytkgen|Simple toolsuite to create Tkinter GUIs on the fly from JSON files]]
  * [[http://pypi.python.org/pypi/pytkgen|Simple toolsuite to create Tkinter GUIs on the fly from JSON files]]
Line 46: Line 32:

 
* [[Pmw]] (http://pmw.sourceforge.net)
  * [[Tix]] (http://www.python.org/doc/current/lib/module-Tix.html)
  * [[TkZinc]] (http://www.tkzinc.org)
  * [[Tkinter3000]] (http://tkinter.effbot.org)
  * [[How Tkinter can exploit Tcl/Tk extensions]]
 * [[Pmw]] (http://pmw.sourceforge.net)
 * [[Tix]] (http://www.python.org/doc/current/lib/module-Tix.html)
 * TkZinc (http://www.tkzinc.org)
 * [[Tkinter3000]] (http://tkinter.effbot.org)
 * [[How Tkinter can exploit Tcl/Tk extensions]]
Line 54: Line 39:
Line 57: Line 41:
Line 59: Line 42:

A good way to systematically check whether your Tkinter support is
working is the following.
A good way to systematically check whether your Tkinter support is working is the following.
Line 66: Line 47:
Line 73: Line 53:
 * If it fails with "No module named _tkinter", your Python configuration needs to be modified to include this module (which is an extension module implemented in C). Do **not** edit Modules/Setup (it is out of date). You may have to install Tcl and Tk (when using RPM, install the -devel RPMs as well) and/or edit the setup.py script to point to the right locations where Tcl/Tk is installed. If you install Tcl/Tk in the default locations, simply rerunning "make" should build the _tkinter extension. [http://idolwhitereviews.blog.com/|idol white]  * If it fails with "No module named _tkinter", your Python configuration needs to be modified to include this module (which is an extension module implemented in C). Do **not** edit Modules/Setup (it is out of date). You may have to install Tcl and Tk (when using RPM, install the -devel RPMs as well) and/or edit the setup.py script to point to the right locations where Tcl/Tk is installed. If you install Tcl/Tk in the default locations, simply rerunning "make" should build the _tkinter extension.
Line 77: Line 57:
=== Step 2 - can Tkinter be imported? ===
Try the correct command for your version at the Python prompt:
Line 78: Line 60:
{{{>>> import Tkinter # no underscore, uppercase 'T' for versions prior to V3.0}}}
Line 79: Line 62:
=== Step 2 - can Tkinter be imported? ===

Try the following command at the Python prompt:

{{{>>> import Tkinter # no underscore, uppercase 'T' prior to V3.0; lowercase 't' from v3.0}}}
{{{>>> import tkinter # no underscore, lowercase 't' for V3.0 and later}}}
Line 87: Line 66:
 * If it fails with "No module named Tkinter", your Python configuration need to be changed to include the directory that contains Tkinter.py in its default module search path. You have probably forgotten to define TKPATH in the Modules/Setup file. A temporary workaround would be to find that directory and add it to your PYTHONPATH environment variable. It is the subdirectory named "lib-tk" of the Python library directory (when using Python 1.4 or before, it is named "tkinter").   * If it fails with "No module named Tkinter", your Python configuration need to be changed to include the directory that contains Tkinter.py in its default module search path. You have probably forgotten to define TKPATH in the Modules/Setup file. A temporary workaround would be to find that directory and add it to your PYTHONPATH environment variable. It is the subdirectory named "lib-tk" of the Python library directory (when using Python 1.4 or before, it is named "tkinter").
Line 90: Line 69:
Try the correct command for your Python version at the Python prompt:
Line 91: Line 71:
Try the following command at the Python prompt: {{{>>> Tkinter._test() # note underscore in _test and uppercase 'T' for versions prior to V3.0 }}}
Line 93: Line 73:
{{{>>> Tkinter._test() # note underscore in _test. Also, if you are using Python 3.1, try tkinter._test() instead.}}} {{{>>> tkinter._test() # note underscore in _test and lowercase 'T' for V3.0 and later}}}
Line 95: Line 75:
 * This should pop up a small window with two buttons. Clicking the "Quit" button makes it go away and the command return. If this works, you're all set. (When running this test on Windows, from Python run in a MS-DOS console, the new window somehow often pops up *under* the console window. Move it aside or locate the Tk window in the Taskbar.)  * This should pop up a small window with two buttons. Clicking the "Quit" button makes it go away and the command return. If this works, you're all set. (When running this test on Windows, from Python run in a MS-DOS console, the new window somehow often pops up *under* the console window. This can also occur when using iTerm on Mac OS X. Move it aside or locate the Tk window in the Taskbar / Dock.)
 * If this doesn't work, study the error message you get; if you can't see how to fix the problem, [[news:comp.lang.python|ask for help]].
Line 97: Line 78:
 * If this doesn't work, study the error message you get; if you can't see how to fix the problem, [[news:comp.lang.python|ask for help]]. ----
[[CategoryPyGUI]]

Tkinter is Python's de-facto standard GUI (Graphical User Interface) package. It is a thin object-oriented layer on top of Tcl/Tk.

Tkinter is not the only GuiProgramming toolkit for Python. It is however the most commonly used one. CameronLaird calls the yearly decision to keep TkInter "one of the minor traditions of the Python world."

Tkinter Documentation

Tkinter Extensions

Comments

MythDebunking: TkInter is ugly on Windows (http://wiki.tcl.tk/8646)

Checking your Tkinter support

A good way to systematically check whether your Tkinter support is working is the following.

Enter an interactive Python interpreter in a shell on an X console.

Step 1 - can _tkinter be imported?

Try the following command at the Python prompt:

>>> import _tkinter # with underscore, and lowercase 't'

  • If it works, go to step 2.
  • If it fails with "No module named _tkinter", your Python configuration needs to be modified to include this module (which is an extension module implemented in C). Do **not** edit Modules/Setup (it is out of date). You may have to install Tcl and Tk (when using RPM, install the -devel RPMs as well) and/or edit the setup.py script to point to the right locations where Tcl/Tk is installed. If you install Tcl/Tk in the default locations, simply rerunning "make" should build the _tkinter extension.
  • If it fails with an error from the dynamic linker, see above (for Unix, check for a header/library file mismatch; for Windows, check that the TCL/TK DLLs can be found).

Step 2 - can Tkinter be imported?

Try the correct command for your version at the Python prompt:

>>> import Tkinter # no underscore, uppercase 'T' for versions prior to V3.0

>>> import tkinter # no underscore, lowercase 't' for V3.0 and later

  • If it works, go to step 3.
  • If it fails with "No module named Tkinter", your Python configuration need to be changed to include the directory that contains Tkinter.py in its default module search path. You have probably forgotten to define TKPATH in the Modules/Setup file. A temporary workaround would be to find that directory and add it to your PYTHONPATH environment variable. It is the subdirectory named "lib-tk" of the Python library directory (when using Python 1.4 or before, it is named "tkinter").

Step 3 - does Tkinter work?

Try the correct command for your Python version at the Python prompt:

>>> Tkinter._test() # note underscore in _test and uppercase 'T' for versions prior to V3.0 

>>> tkinter._test() # note underscore in _test and lowercase 'T' for V3.0 and later

  • This should pop up a small window with two buttons. Clicking the "Quit" button makes it go away and the command return. If this works, you're all set. (When running this test on Windows, from Python run in a MS-DOS console, the new window somehow often pops up *under* the console window. This can also occur when using iTerm on Mac OS X. Move it aside or locate the Tk window in the Taskbar / Dock.)
  • If this doesn't work, study the error message you get; if you can't see how to fix the problem, ask for help.


CategoryPyGUI

TkInter (last edited 2022-02-08 22:05:48 by martinmiller)

Unable to edit the page? See the FrontPage for instructions.