Tkinter


Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's de facto standard GUI. Tkinter is included with standard Linux, Microsoft Windows and Mac OS X installs of Python.
The name Tkinter comes from Tk interface. Tkinter was written by Fredrik Lundh.
Tkinter is free software released under a Python license.

Description

As with most other modern Tk bindings, Tkinter is implemented as a Python wrapper around a complete Tcl interpreter embedded in the Python interpreter. Tkinter calls are translated into Tcl commands which are fed to this embedded interpreter, thus making it possible to mix Python and Tcl in a single application.
There are several popular GUI library alternatives available, such as wxPython, PyQt, PySide, Pygame, Pyglet, and PyGTK.

Some definitions

Window">WIMP (computing)">Window

This term has different meanings in different contexts, but in general it refers to a rectangular area somewhere on the user's display screen.

Top Level Window

A window that exists independently on the screen. It will be decorated with the standard frame and controls for the desktop manager. It can be moved around the desktop, and can usually be resized.

Widget

The generic term for any of the building blocks that make up an application in a graphical user interface.
In Tkinter, the Frame widget is the basic unit of organization for complex layouts. A frame is a rectangular area that can contain other widgets.

Child and parent

When any widget is created, a parent-child relationship is created. For example, if you place a text label inside a frame, the frame is the parent of the label.

A minimal application

Here is a minimal Python 3 Tkinter application with one widget:

  1. !/usr/bin/env python3
from tkinter import *
root = Tk # Create the root window
w = Label # Create a label with words
w.pack # Put the label into the window
root.mainloop # Start the event loop

Process

There are four stages to creating a widget
;Create :create it within a frame
;Configure :change the widgets attributes
;Pack : pack it into position so it becomes visible
;Bind :bind it to a function or event.
These are often compressed and the order can vary.

Simple application

Using the object orientated paradigm in Python, a simple program would be :

  1. !/usr/bin/env python3
import tkinter as tk
class Application:
def __init__:
tk.Frame.__init__
self.grid
self.createWidgets
def createWidgets:
self.mondialLabel = tk.Label
self.mondialLabel.config
self.mondialLabel.grid
self.quitButton = tk.Button
self.quitButton.grid
app = Application
app.master.title
app.mainloop