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 easiest to start with. Tkinter 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 an open-source, cross-platform GUI toolkit written in C++. It is 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.
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:
- list - box
- menu button
- radio button
- scroll bar
- tree-view, and many more.
Creating a GUI program using this Tkinter is simple. For this, programmers need to follow the steps mentioned below:
- Import the module Tkinter
- Build a GUI application (as a window)
- Add those widgets that are discussed above
- Enter the primary, i.e., the 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.
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
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