How to Create a Desktop Application Using Python

Can you create a desktop application using Python? Yes, you can. In this article, we will learn how to make a desktop application using the Tkinter library of Python.

There are several libraries in Python, but Tkinter is one of the easiest ones among them. So, we will be using that library.

How to create a desktop application in Python? To create a desktop application, you need to learn the basics of Python, object-oriented programming, and the fundamentals of the Tkinter library. Tkinter is a GUI (Graphical User Interface) library of Python, which can help you create desktop apps easily.

Now, let’s discuss these topics in detail and build a simple desktop application.


Let’s look at the requirements in detail, and I’ll point you to some helpful resources.

1. Basics of Python

Obviously, to create a desktop app using Python, you need to know the basics of Python. I hope you already know the basics of Python since you came here to take it to the next level. So, I won’t waste so much time discussing Python basics.

However, if you don’t know the basics of Python, you can check this tutorial I’ve written, and learn the basics. If you know the basics, let’s move on to the next requirement.

2. Object Oriented Programming

Desktop apps work mostly based on objects, and hence, you need to know the object-oriented concepts in Python to create apps. You should learn what classes, objects, methods, inheritance, polymorphism, encapsulation, etc., are and how do they work.

If you don’t know these things, don’t worry. I’ve written a complete guide on object-oriented concepts in Python. But before going to that, let’s make your first desktop app, even if you don’t know anything.

Let’s move on to learning Tkinter now. You’ll be able to create a simple application if you follow along with me.

3. Fundamentals of Tkinter

It’s time to learn the basics of the Tkinter library. It is a pretty simple library, and you can easily understand the working of it. The best thing is that you don’t need to install anything extra to use Tkinter. If you have the Python IDLE on your system, that is enough. Tkinter comes up built-in with the Python IDLE.

If you want to learn Tkinter in-depth, I’ll point you to one of my favorite articles, where you’ll learn the concepts and create three amazing apps. You’ll create a social media bookmark app, an age calculator app, and a rock paper scissors game. Click here to check that article.

A Simple Desktop Application Using Python

Now, let’s make a simple desktop application using Python and Tkinter.

To use any library, we need to import it first into the code. So, let’s import Tkinter as tk. Why do we import tkinter as tk? It is for ease of use. Now we can use tk instead of Tkinter whenever we need to use it.

import tkinter as tk

The next thing we need to do is to create a window. We can do that by initializing a new Tkinter object with the help of the Tk() method. It’s simple. This is how we do it:


Now, we have a window for our desktop application. Let’s try to give this window a title. We can do it by using the title() method. I gave the name “Pythonista Planet Desktop App”. I know it is a weird name. But you understood how to give a title to the app.

window.title(" Pythonista Planet Desktop App ")

Now, let’s define the geometry for the app window. That means the width and height. We can do it using the geometry() method. Let’s give the width as 600 and the height as 400.


Now, the window is ready. Let’s print something on this window. Again, I’ll be shamelessly promoting my website. Let’s display ” Visit Pythonista Planet to improve your Python skills ” on the window. What about that?

We can add a text by using the Label() method of Tkinter. Pass the string that you want to display to the parameter called ‘text’. I’m assigning the whole thing to a variable called “newlabel”.

newlabel = tk.Label(text = " Visit Pythonista Planet to improve your Python skills ")

Now, let’s place this label on a grid. The whole Tkinter window is divided into multiple grids. Let’s place it on the top-left grid(0,0).


We’ve done almost everything. No, one last thing. Before we run any Tkinter application, we need to call the mainloop() method. If you know the C language, it is like calling the main() program in C. This main program executes everything that we’ve written above it. Let’s call the mainloop().


Now, our tiny desktop application is ready. Let’s run the program in our IDLE.

Simple Desktop App using Python Tkinter

Hurray!!! We have successfully build a desktop application using Python. Here is the output:

I know it is a very simple application. But for complete beginners, it is a pretty good starting point. You have at least made a simple desktop application using Python. Let’s build on this. I suggest you learn more about Tkinter now, and advance your skills.

Don’t worry, I’ll point you to some resources. As I’ve mentioned above, I’ve written a complete guide on building desktop applications using python and Tkinter. Click here to go to that article. It will help you learn the basics of Tkinter, and you will be able to create three advanced projects.

After doing those three projects, you can do even more projects if you want. Check out this article that I wrote on the topic 8 Fun Tkinter Project Ideas. This article will help you find some more project ideas. It will also show you some helpful tutorials to implement them.

Tkinter Course Recommendation

If you want to learn how to create desktop applications using Tkinter with the help of a high-quality video course, I’ll recommend one for you. The GUI Development with Python and Tkinter course on Udemy is great and costs very little. You’ll be able to master Tkinter by building projects like Snake Game, Pomodoro Timer App, Chat App, etc. Click here to check out the course contents on Udemy.

Some Other Python Frameworks To Create Desktop Apps

Tkinter is not the only option available to create desktop apps in Python. Python has other GUI frameworks as well. Some of the commonly used GUI frameworks are given below.

  • PyQT
  • WxPython
  • PyGUI
  • PySimpleGUI
  • Kivy

I haven’t used any of these frameworks. I’ve only worked with Tkinter. If you want to learn more about these frameworks, I suggest you read this article.

I prefer Tkinter since it is a simple and lightweight framework. You might have understood that from this tutorial. It is a pretty simple framework and most suited for beginners. However, you can explore more and learn other frameworks as well if you want.

Final Thoughts

Creating desktop applications is easy, especially when you’re coding in Python. You can also create advanced desktop apps using Tkinter that can be helpful in real-world situations.

I hope this article was helpful for you in creating a simple desktop application. If this article was useful, let me know in the comments section. Also, let me know if you have queries or doubts. I’ll be to help you if I can.

I would really appreciate it if you would be willing to share this article on social media. It will inspire me to create more valuable tutorials like this.

Happy coding!

Ashwin Joy

I'm the face behind Pythonista Planet. I learned my first programming language back in 2015. Ever since then, I've been learning programming and immersing myself in technology. On this site, I share everything that I've learned about computer programming.

8 thoughts on “How to Create a Desktop Application Using Python

  1. I’m a c# programmer looking to learn python. I haven’t found any good examples of desktop apps with menus and multiple screens. An app with one screen is pretty straightforward, but overly simplistic for what I’m looking to do. Any examples you can point me to?

    1. Check out this article and see if any of these projects match your need:

  2. Seriously, amazing, i was stuck, not found any way to build my final year project, even don’t know, what will be my final year project, will it be web base application, or mobile application,
    Now finally after reading this, i have clear my concepts
    Thanks to God

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Posts