Tkinter is a Python Package for creating GUI applications. Python has a lot of GUI frameworks, but this is the only framework that’s built into the Python standard library. It has several strengths; it’s cross-platform, so the same code works on Windows, macOS, and Linux. It is lightweight and relatively painless to use compared to other frameworks. This makes it a compelling choice for building GUI applications in Python, especially for applications where a modern shine is unnecessary, and the top priority is to build something that’s functional and cross-platform quickly.
Let’s start quickly working with Tkinter
Let’s Understand the Basics
Firstly Tkinter is a module that is available in most IDE’s. So let’s break apart the beginning into points:
- Importing the Tkinter module.
- Creating a window in which the program executes. It is also known as the “root window”.
- Finally, using a function to execute the code which is known as “mainloop()”.
Python3
# import all things from tkinter from tkinter import * # create root window root = Tk() # widgets,buttons,etc here root.mainloop() |
Output:
This is how you could build a window in just three simple lines!
Note: Please do not spell “tkinter” as with a capital “T”, as this would not import the module and you would most probably encounter an error message!!!
Designing Our GUI Window
This is a simple step! So we will basically use these mains functions:-
- geometry(“AAAxBBB”)
- minsize(height = AAA, width = BBB)
- maxsize(height = AAA, width = BBB)
- title(“DESIRED TITLE”)
Python3
from tkinter import * # root root = Tk() # design root.geometry( "300x300" ) root.minsize(height = 560 ) root.title( "TKINter Program" ) # execute root.mainloop() |
Output:
Create a Basic Notepad
Notepad is one thing used commonly by every person who owns a desktop. It a shortcut tool to save important information in small notes, for temporary purposes, etc. Let’s make our own notepad using Tkinter.
First, let’s type the basic code that we discussed earlier.
Python3
from tkinter import * # create root window root = Tk() # design root.geometry( "300x300" ) root.minsize(height = 560 ) root.title( "Notepad" ) # running the program root.mainloop() |
Okay so let’s think we will need a text function and a scroll bar to scroll through the text if it exceeds the dimensions of the window. Also, we learn about grid() and pack(). They are used to pack the functions in the window, without them the buttons, text, frames would not display in the window.
Note: We can either use .grid() or .pack() for our program. However, using both in the same file would not work since Tkinter does not accept this, you obtain an error. You could use .pack() for efficient packing
Now let’s add a scrollbar: We shall invent a variable known as scrollbar and equate it to Scrollbar(root). It is important to add root into the brackets to integrate the scrollbar function into main root loop.
Now let’s pack the scrollbar: We call the variable name and append it with “.pack(). We use side = RIGHT so that the scrollbar is added to the right of the window and fill = Y or fill = “y” (Use anyone) so that it fill across the whole y-axis.
Python3
from tkinter import * root = Tk() root.geometry( "300x300" ) root.minsize(height = 560 , width = 560 ) root.title( "Notepad" ) # implementing scrollbar functionality scrollbar = Scrollbar(root) # packing the scrollbar function scrollbar.pack(side = RIGHT, fill = Y) root.mainloop() |
Output:
Now let’s add the text: We will use the text function and pack it. Also, we will configure the scrollbar for functionality. We will add a command called “yscrollcommand” which will connect the text and scrollbar function together and it would add scrolling option for the text.
Python3
from tkinter import * root = Tk() root.geometry( "350x250" ) root.title( "Sticky Notes" ) root.minsize(height = 250 , width = 350 ) root.maxsize(height = 250 , width = 350 ) # adding scrollbar scrollbar = Scrollbar(root) # packing scrollbar scrollbar.pack(side = RIGHT, fill = Y) text_info = Text(root, yscrollcommand = scrollbar. set ) text_info.pack(fill = BOTH) # configuring the scrollbar scrollbar.config(command = text_info.yview) root.mainloop() |
Output: