Python GUI Programming

Most of the programs we have done till now are text-based programming. But many applications need GUI (Graphical User Interface).

Python provides several different options for writing GUI based programs. These are listed below:

  • Tkinter: It is the easiest among all to get started with. It is Python's standard GUI (Graphical User Interface) package. It is the most commonly used toolkit for GUI Programming in Python.
  • JPython: It is the Python platform for Java that is providing Python scripts seamless access o Java class Libraries for the local machine.
  • wxPython: It is open-source, cross-platform GUI toolkit written in C++. It one of the alternatives to Tkinter, which is bundled with Python.

There are many other interfaces available for GUI. But these are the most commonly used ones. In this, we will learn about the basic GUI programming using Tkinter.

Using Tkinter

It is the standard GUI toolkit for Python. Fredrik Lundh wrote it. For modern Tk binding, Tkinter is implemented as a Python wrapper for the Tcl Interpreter embedded within the interpreter of Python. Tk provides the following widgets:

  • button
  • canvas
  • combo-box
  • frame
  • level
  • check-button
  • entry
  • level-frame
  • menu
  • list - box
  • menu button
  • message
  • tk_optoinMenu
  • progress-bar
  • radio button
  • scroll bar
  • separator
  • tree-view and many more...

Creating a GUI program using this Tkinter is simple. For this programmers need to follow the steps mentioned below:

  1. Import the module Tkinter
  2. Build a GUI application (as a window)
  3. Add those widgets that are mentioned above
  4. Enter the primary, i.e., main event's loop for taking action when the user triggered the event.

A Sample Program Using Tkinter

In this program, it is shown how Tkinter is used via Python to built windows along with some buttons and the events that are programmed using these buttons.

Example:
import tkinter as tk
from tkinter import *
from tkinter import ttk

class karl( Frame ):
    def __init__( self ):
        tk.Frame.__init__(self)
        self.pack()
        self.master.title("Karlos")
        self.button1 = Button( self, text = "CLICK HERE", width = 25,
                               command = self.new_window )
        self.button1.grid( row = 0, column = 1, columnspan = 2, sticky = W+E+N+S )
    def new_window(self):
        self.newWindow = karl2()
class karl2(Frame):     
    def __init__(self):
        new =tk.Frame.__init__(self)
        new = Toplevel(self)
        new.title("karlos More Window")
        new.button = tk.Button(  text = "PRESS TO CLOSE", width = 25,
                                 command = self.close_window )
        new.button.pack()
    def close_window(self):
        self.destroy()
def main(): 
    karl().mainloop()
if __name__ == '__main__':
    main()

Standard Attributed for GUI

  • Dimensions
  • Fonts
  • Colors
  • Cursors
  • Anchors
  • Bitmaps

Methods For Geometry Management

  • The pack(): This method manages the geometry of widgets in blocks
  • The grid(): This method organizes widgets in a tabular structure
  • The place(): This method organizes the widgets to place them in a specific position

Courses
Subscribe Updates via Email

Join 49,000+ W3schools lovers and get all the latest tutorials, programs, algorithms in your inbox.