GUI Development with Python and Tkinter

Master Python GUI development using Tkinter to build desktop applications!

4.66 (2692 reviews)
Udemy
platform
English
language
Software Engineering
category
GUI Development with Python and Tkinter
16,831
students
11 hours
content
Aug 2023
last update
$109.99
regular price

What you will learn

Master GUI Development with Tkinter and Python!

Create multiple Tkinter projects, including forms, games, and even a chat app that interacts with a web API.

Fully understand the two most important Geometry Managers in Tkinter: grid and pack.

Learn how to use a wide variety of widgets, such as labels, entries, buttons, spinboxes, and even the Canvas!

Gain in-depth knowledge of how themes and styles work in Tkinter, as well as how you can create your own styles and use them in your applications.

Throughout the entire course, follow best practices for Python and Tkinter code as taught by a professional software developer with years of experience.

Description

Welcome to the highest-rated course on Udemy on creating desktop apps using Python and Tkinter.

Whether you want to create simple utilities, complex multi-page applications, or internal tools for your business, Tkinter has what you need.

In this course, I'll teach you the techniques to make any kind of desktop application using Python and Tkinter.


A frequent question is: "Why should I learn Tkinter instead of web development"?

  • Desktop applications are much easier to develop than websites. This is especially true for tools and utilities.

  • It's easy to share Tkinter apps with others without needing them to install Python.

  • Python GUI apps made with Tkinter look native to the Operating System.

  • Tkinter apps have full access to the user's computer, which means you can store data locally, safely and securely.


So what's covered in the course?

This is the most comprehensive Tkinter course available on Udemy. We'll look at how you can:

  • Use Tkinter's grid and pack layout methods to structure your apps

  • Use Object-Oriented Programming with Tkinter, and create your own custom widgets

  • Split Tkinter apps into many files, so working on them becomes much easier

  • Add fonts and styles to Tkinter apps using the new Themed Tkinter Widgets

  • Add shortcuts and keybindings to your Python GUI apps

  • Connect to web APIs to send and receive data, stored in the cloud

  • Build games using Tkinter with the Canvas widget

  • Package and distribute Tkinter apps so your users don't need to install Python


We've also included two unique sections in this course:

  • A complete Python refresher. If you're new to Python (but you have some other coding experience), this section will make you productive right away.

  • A full reference of many Tkinter widgets so you learn how to work with them quickly. It's also easy to come back to later to review what you've learned.


Other students are loving this course!

> The course is straightforward and logically introduces new concepts. I am enjoying it so far!

> This course was perfect for no-frills refresher - and then some! The instructor is very engaging, is full of great suggestions and insight, and delivers his material perfectly.

> Excellent course! A lot of details explained well.


My name is Jose Salvatierra, and I'll be your instructor! I'm an experienced software developer turned instructor. I've helped over 250,000 students in their programming journey.

So if you want to create and distribute intuitive, usable Python GUI applications, this is the course for you!

I'll see you on the inside!

Content

Introduction

Welcome to this course!
Curriculum + how to take this course
Initial setup (for newer Pythonistas)

Python Refresher

Introduction to this section
Variables in Python
Get the Python Refresher code here
String formatting in Python
Getting user input
Lists, tuples, and sets
Advanced set operations
Booleans in Python
If statements in Python
The 'in' keyword in Python
If statements with the 'in' keyword
Loops in Python
List comprehensions in Python
Dictionaries
Destructuring variables
Functions in Python
Function arguments and parameters
Default parameter values
Functions returning values
Lambda functions in Python
Dictionary comprehensions
Unpacking arguments
Unpacking keyword arguments
Object-Oriented Programming in Python
Magic methods: __str__ and __repr__
Class methods and static methods
Class inheritance
Class composition
Type hinting in Python 3.5+
Imports in Python
Relative imports in Python
Errors in Python
Custom error classes
First-class functions
Simple decorators in Python
The 'at' syntax for decorators
Decorating functions with parameters
Decorators with parameters
Mutability in Python
Mutable default parameters (and why they're a bad idea)

Creating Your First Tkinter App

Setting up Tkinter
Hello, World with Tkinter
Tkinter Buttons
Our Greetings App
Packing components in Tkinter
Packing components with Frames
Our Greetings App using Pack
The Tkinter Grid Geometry Manager
Enabling High-DPI in Windows 10

Tkinter Widget Reference

Introduction to this section
Labels in Tkinter
The Text Widget in Tkinter
Scrollbars in Tkinter
Separators in Tkinter
Check Buttons in Tkinter
Radio Buttons in Tkinter
Comboboxes in Tkinter
Listboxes in Tkinter
Spinboxes in Tkinter
Scales in tkinter

Milestone Project: Distance Converter

Initial setup
Calculating the number of feet
Updating our feet display label dynamically
Shortcuts and Keybindings in Tkinter
How to change the font of a Tkinter widget
The Tkinter winfo_children method

Object-Oriented Programming with Tkinter

An Object-Oriented Window in Tkinter
An Object-Oriented Frame
A Full Tkinter Object-Oriented App
Making our Distance Converter use Object-Oriented Programming
Adding an inner container for better control of space
Creating a FeetToMetres frame
How to switch between frames (or views) in a Tkinter app
Adding keybindings to our app

Tkinter Themes and Styles

Tkinter themes, and how to change theme
Finding a Tkinter widget's style class
How to change and configure a Tkinter style
Find out what properties you can change in a Tkinter style
How to create new inherited styles in Tkinter
How to configure state-specific options in a Tkinter style
Can you change the entry field font using styles?
How to use named fonts in Tkinter

Milestone Project: Pomodoro Timer

Introduction: app overview
Creating a simple Countdown Timer with Tkinter
Adding timer breaks
Showing the current timer's description label on the side
How to start and stop the timer
How to reset the timer
Linking our Timer frame with the controller
Splitting our Tkinter app into multiple files
Creating the user Settings Frame
Adding the ability to switch between frames
Styling our Pomodoro Timer with custom styles and state-specific styles

Build a Chat app with Tkinter

Overview of what the app will look like
How to get the chat messages from the API
Creating a label for each message received
Showing the message date in another label
How to add a sample user avatar to each message
How to create scrollable Frames with Tkinter
How to code the scrollable Frame in our application
Handling resizing and wrapping labels
Sending message data to the API
Styling our completed app

Build a Snake Game with Tkinter

Build the Snake Game!

Packaging and Distributing executables

Installation and documentation of pyinstaller
Two ways to bundle apps into executables with Python
Bundling a standalone app
How to include data files with an executable Python app
How to include data files in a --onefile executable
How to hide the console window when packaging applications
When things go wrong packaging Python apps
Building Python apps for multiple platforms

Wrapping up!

Bonus lecture: other courses and next steps

Reviews

Danzhao
November 1, 2023
Quick and succinct. Great coverage of basic and necessary advanced topics. Highly recommend for programmer switching from another language who need a quick intro to python.
Christopher
October 31, 2023
Nice course, interesting apps developed throughout the course and really good explanations from Jose. Highly recommended
Vu
October 16, 2023
Good content and presentation. I would give some comments for improvement. In basic Python part, please add some exercises and solutions for learner to practice. In advanced part - Python with Tkinter, the button layout part is hard to understand. If possible, please give more sample applications (i.e: calculator, data input form...).
wassim
September 10, 2023
Yes, it is a good match for me. Easy to understand and most of the basics are explained nicely, so it's easy to develop a good base.
Michael
July 19, 2023
I really like Jose's delivery and his explanations are detailed and easy to understand. I'm really enjoying this course.
Shashwat
July 8, 2023
The lectures are very short and there was no detailed explanation until they started explaining using the presantation.
Eugen
April 15, 2023
The course is very well presented, concise, and contains useful tips and examples! Thank you very much! Keep up the excellent work!
Harry
April 7, 2023
It is a great course. The teacher is articulate, content is well prepared. My daughter learned a lot from this course. Thanks!
Denis
March 7, 2023
Excellent. For Beginners bit steep learn curve but manageable. I would like to see a slower beginner course just for the placement and streching of the widgets, as tkinter isnt very intuitive at that. Thank you for your time and effort, creating this tutorial.
Brian
February 2, 2023
Very good coverage of many important topics. Jose went a little too fast for me in some places, but I can always go back and watch again if I need to.
Carsten
January 8, 2023
Brilliant instructor and course. Although I have had quite some challenges to find some time for it, I did never lack motivation. Thanks!
Glebas
January 3, 2023
Just wondering why there was a need for so many short lectures, but overall a good, informative course.
David
December 9, 2022
Excellent course to teach you the fundaments of Tkinter! Make sure you have a solid understanding of Python before attempting this course. The refresher will let you know if you have to go review Python some more before coming back to Tkinter. Don't be afraid to use the pause and rewind buttons on the player! There is a lot of content and the pace is quick!
Michael
November 24, 2022
Yes it is good. I was hoping for some actual insight into how I can learn to write my own user input classes. I cannot figure out how to get the user input from the input box and return it to a variable in my code for further action after the user clicks the submit button. It just seems that it is voodoo, although others have been able to master it. I have spent hours on the internet searching and reading to no avail.
Jorge
November 14, 2022
Delivers on what's excepted. Comprehensive and to the point. The Python refresher is optional but it mentions decorators and object oriented programming which are useful features of Python.

Charts

Price

GUI Development with Python and Tkinter - Price chart

Rating

GUI Development with Python and Tkinter - Ratings chart

Enrollment distribution

GUI Development with Python and Tkinter - Distribution chart
2589314
udemy ID
10/3/2019
course created date
11/8/2019
course indexed date
Bot
course submited by