Site icon DataFlair

Python Program to Design GUI Applications Using OOPS

Master Python with 70+ Hands-on Projects and Get Job-ready - Learn Python

In this practical journey through Python, we’ll explore designing Graphical User Interface (GUI) applications using Object-Oriented Programming (OOP). This method, with classes and objects, gives developers the power to create Tkinter GUIs in a structured and modular way.

OOP concepts help organize the code better, making it easier to grow and maintain. Throughout this exploration, we’ll learn the basics of using classes and objects to build Tkinter GUIs, setting a strong foundation for developers to create interactive and well-organized applications.

Topic Explanation:

In this hands-on tutorial, we will explore the dynamic realm of designing GUI applications in Python by employing Object-Oriented Programming (OOP) principles. OOP involves creating classes that encapsulate data and functions, and using objects instantiated from these classes to build our Tkinter GUIs.

This organized and modular approach allows for clearer code structure, making it simpler to understand and extend. We’ll delve into the step-by-step process of implementing classes and objects to construct Tkinter interfaces, providing developers with a structured and efficient way to develop interactive applications.

This not only simplifies comprehension but also facilitates easy extension of our applications. Throughout the tutorial, we’ll walk through each step of implementing classes and objects for crafting Tkinter interfaces, providing developers with a structured and efficient approach to building interactive applications.

Prerequisites:

Code With Comments

# Import the entire Tkinter module
from tkinter import *

# Define a class named Myclass
class Myclass:
    # Constructor method for initializing the class
    def __init__(self, myroot):
        # Create a frame with specific attributes
        self.mf = Frame(myroot, width=500, height=500, bg='yellow', cursor='cross')
        self.mf.pack()
        self.mf.propagate(0)  # Prevent the frame from resizing based on its content

        # Create three buttons with specific attributes and link them to the myclick method
        self.btn1 = Button(self.mf, width=7, height=2, text="Red", bg='red', font=('Arial', 10, 'bold'),
                           command=lambda: self.myclick(1))
        self.btn2 = Button(self.mf, width=7, height=2, text="Blue", bg='blue', font=('Arial', 10, 'bold'),
                           command=lambda: self.myclick(2))
        self.btn3 = Button(self.mf, width=7, height=2, text="Green", bg='green', font=('Arial', 10, 'bold'),
                           command=lambda: self.myclick(3))

        # Pack the buttons into the frame
        self.btn1.pack()
        self.btn2.pack()
        self.btn3.pack()

    # Method to handle button clicks and change the frame's background color
    def myclick(self, n):
        if n == 1:
            self.mf['bg'] = 'red'
        elif n == 2:
            self.mf['bg'] = 'blue'
        elif n == 3:
            self.mf['bg'] = 'green'

# Create a Tkinter root window
myroot = Tk()

# Set the dimensions, title, icon, and size limits for the root window
myroot.geometry('500x500')
myroot.title("GUI OOPS Application")
myroot.wm_iconbitmap('2.ico')
myroot.maxsize(500, 500)
myroot.minsize(500, 500)

# Instantiate the Myclass object
M1 = Myclass(myroot)

# Start the Tkinter event loop
myroot.mainloop()

Output:

The program creates a GUI window with three buttons (“Red,” “Blue,” and “Green”). Clicking on each button changes the background color of the frame accordingly. The GUI provides a simple interactive color-changing application.

Code Explanation:

Conclusion:

In wrapping up this Tkinter GUI project, we’ve explored a color-changing interface made with Object-Oriented Programming (OOP) in Python. Using classes and objects, we organized our code in a clear and easy-to-expand way.

The application’s cool feature lets buttons change the background color dynamically, showcasing how OOP can make GUI development versatile. Through this hands-on practice, developers can see how combining OOP with Tkinter opens doors to creating more advanced and user-friendly applications in the exciting world of Python GUI development.

Exit mobile version