How To Create GUI Window Using Python's Tkinter

How To Create GUI Window Using Python's Tkinter

You can create GUI (Graphical User Interface) based applications using Tkinter (Tkinter is a graphical user interface (GUI) library for Python scripts. It's the only framework built into the Python standard library and is included in all standard Python distributions). In this article, I will show you how you can create a very basic simple GUI window in Python just using a few lines of code. I have also created a video for you! 😊

Video Tutorial

This Python script creates a basic graphical user interface (GUI) application using tkinter, a standard GUI toolkit in Python.

Code

import tkinter as tk
import tkinter.font as tkFont


class App:
    def __init__(self, root):
        # Setting the title
        root.title('My First GUI Window')
        # Setting the window size
        height = 720
        width = 1280
        screenheight = root.winfo_screenheight()
        screenwidth = root.winfo_screenwidth()
        alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width)/2, (screenheight - height)/2)
        root.geometry(alignstr)
        root.resizable(width = False, height = False)

if __name__ == "__main__":
    root = tk.Tk()
    app = App(root)
    root.mainloop()

Output

GUI Window

Let's break down the script:

Import Statements

  1. import tkinter as tk: Imports the tkinter module and gives it an alias tk. This module provides classes and methods to create GUI elements.

  2. import tkinter.font as tkFont: Imports the font submodule from tkinter. It's used to deal with fonts, though it's not explicitly used in this script.

Class Definition: App

  • class App:: Defines a new class App, which will contain the components of the GUI.

Constructor: __init__

  • def __init__(self, root):: The constructor of the App class. It initializes a new instance of the class. root is the main window of the application, typically an instance of Tk.

Inside the Constructor

  1. Setting Title: root.title("undefined"): Sets the title of the window to "undefined".

  2. Setting Window Size:

    • width=600 and height=500: Sets the width and height of the window in pixels.

    • screenwidth = root.winfo_screenwidth() and screenheight = root.winfo_screenheight(): Retrieves the width and height of the screen.

    • alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2): Creates a string to specify the size and position of the window. It centers the window on the screen.

    • root.geometry(alignstr): Applies the size and position settings to the window.

    • root.resizable(width=False, height=False): Disables resizing of the window.

Main Block

  • if __name__ == "__main__":: Checks if the script is being run directly (not imported as a module).

    • root = tk.Tk(): Creates the main window (root) of the application.

    • app = App(root): Instantiates the App class with root as the argument.

    • root.mainloop(): Starts the main event loop of the program. This keeps the window open and waits for user interaction.

Limitations and Further Development

  • The script only sets up a window without any widgets (like buttons, labels, or text fields).

  • To make it a functional application, you would need to add widgets inside the App class.

  • The script also does not handle any events or user interactions.

This is a foundational script for a tkinter application, providing a window setup, but it lacks the interactive components typical of GUI applications.

I will try to make more videos and articles on Python Tkinter-based projects later.