Duration of the online course: 49 hours and 59 minutes
New
Build real Python GUI apps with Tkinter—forms, dialogs, database tools and more. Free online course with practical projects and a shareable certificate.
In this free course, learn about
Build Tkinter apps: root window, widgets, mainloop, and structuring a GUI project
Layout mastery: grid/pack/place, row/column spanning, resizing with weights and sticky
Turn your Python skills into desktop applications people can actually use. In this free online course, you will learn how to design and build graphical user interfaces with Tkinter, taking your code beyond the terminal and into polished windows with buttons, inputs, menus, tabs, and interactive components. You will start with the essentials of creating a Tkinter app and organizing layouts so your interfaces look clean and behave predictably on different screen sizes.
As you progress, the focus shifts from isolated widgets to complete, practical programs. You will build everyday utilities such as calculators, image viewers, weather dashboards, pickers, and interactive games—projects that teach you how to connect user actions to application logic, validate input, handle events, manage multiple windows, and update the interface dynamically without frustration. You will also learn to work with images and icons, add status bars, use message boxes for better user feedback, and apply styles that make an app feel more professional.
Modern desktop apps often require data, search, and persistence, so you will practice connecting GUIs to databases and external files. You will see how to create simple database-driven tools, search and edit records safely, and display results in advanced widgets such as Treeview tables. You will also gain experience integrating common developer-friendly features like file dialogs, progress bars, timers, keyboard bindings, tooltips, and menu bars, which help transform a simple script into a complete user experience.
By the end, you will be comfortable choosing the right widgets for the job, structuring Tkinter projects so they stay maintainable, and building interfaces that respond smoothly—even when tasks take time or data comes from an API. If you want a hands-on way to expand your programming portfolio and learn how desktop software is put together using Python, this course gives you a practical path from first window to full applications.
Course content
Video class: Create Graphical User Interfaces With Python And TKinter11m
Exercise: Which component must be created first in a Tkinter GUI?
Video class: Positioning With Tkinter's Grid System - Python Tkinter GUI Tutorial #209m
Video class: Creating Buttons With TKinter - Python Tkinter GUI Tutorial #311m
Video class: Creating Input Fields With TKinter - Python Tkinter GUI Tutorial #410m
Video class: Build A Simple Calculator App - Python Tkinter GUI Tutorial #518m
Exercise: Which Tkinter geometry manager was used to arrange calculator widgets in rows and columns with support for column spanning
Video class: Continue Building A Simple Calculator App - Python Tkinter GUI Tutorial #613m
Video class: Finish Building A Simple Calculator App - Python Tkinter GUI Tutorial #711m
Video class: Using Icons, Images, and Exit Buttons - Python Tkinter GUI Tutorial #810m
Video class: Build an Image Viewer App With Python and TKinter - Python Tkinter GUI Tutorial #922m
Exercise: How to pass the next image index to a Button command in Tkinter
Video class: Adding A Status Bar - Python Tkinter GUI Tutorial #1011m
Video class: Adding Frames To Your Program - Python Tkinter GUI Tutorial #1109m
Video class: Radio Buttons with TKinter - Python Tkinter GUI Tutorial #1217m
Video class: Message Boxes with TKinter - Python Tkinter GUI Tutorial #1311m
Exercise: Which tkinter messagebox returns yes or no strings instead of 1 or 0?
Video class: Create New Windows in tKinter - Python Tkinter GUI Tutorial #1409m
Video class: Open Files Dialog Box - Python Tkinter GUI Tutorial #1512m
Video class: Sliders With TKinter - Python Tkinter GUI Tutorial #1613m
Video class: Checkboxes With TKinter - Python Tkinter GUI Tutorial #1709m
Exercise: Tkinter Checkbutton custom values and reading state
Video class: Dropdown Menus With TKinter - Python Tkinter GUI Tutorial #1807m
Video class: Using Databases With TKinter - Python Tkinter GUI Tutorial #1909m
Video class: Building Out The GUI for our Database App - Python Tkinter GUI Tutorial #2028m
Video class: Delete A Record From Our Database - Python Tkinter GUI Tutorial #2116m
Exercise: When deleting a record in a Tkinter SQLite app, which field should you use in the WHERE clause to ensure only one specific row is removed?
Video class: Update A Record With SQLite - Python Tkinter GUI Tutorial #2215m
Video class: Update A Record With SQLite Part 2 - Python Tkinter GUI Tutorial #2316m
Video class: Build a Weather App - Python Tkinter GUI Tutorial #2422m
Video class: Change Colors In our Weather App - Python Tkinter GUI Tutorial #2513m
Exercise: Safely updating Tkinter backgrounds from an API category
Video class: Add Zipcode Lookup Form - Python Tkinter GUI Tutorial #2611m
Video class: Matplotlib Charts With Tkinter - Python Tkinter GUI Tutorial #2712m
Video class: Create a CRM Database Tool - Python Tkinter GUI Tutorial #2815m
Video class: Create a Database and Table for our CRM - Python Tkinter GUI Tutorial #2914m
Exercise: In a Tkinter CRM app that connects to MySQL, what must you do before executing any SQL statements after establishing the connection?
Video class: Add Input Boxes For Our CRM Tool - Python Tkinter GUI Tutorial #3025m
Video class: Lookup All Customers CRM - Python Tkinter GUI Tutorial #3116m
Video class: Export CRM Database To Excel File - Python Tkinter GUI Tutorial #3213m
Video class: Lookup Customer By Last Name in CRM - Python Tkinter GUI Tutorial #3317m
Exercise: In a Tkinter search window that runs a SELECT query, what must you do after cursor.execute to obtain rows for display?
Video class: Drop Down Box Database Search CRM - Python Tkinter GUI Tutorial #3416m
Video class: Treeview Scrollbar - Python Tkinter GUI Tutorial #12008m
Video class: Treeview Update Records - Python Tkinter GUI Tutorial #12112m
Exercise: In a Tkinter ttk.Treeview update workflow, which method retrieves the ID of the currently selected item before reading or setting its values?
Video class: Binding and Moving Rows In Treeview - Python Tkinter GUI Tutorial #12210m
Video class: Open Web Browser From Tkinter (Halloween Edition!) - Python Tkinter GUI Tutorial 19507m
Video class: Connect One Scrollbar To Multiple TextBoxes - Python Tkinter GUI Tutorial 19607m
Video class: Create An Url Link Shortener - Python Tkinter GUI Tutorial 19710m
Exercise: Updating a Tkinter Entry with a new shortened URL
Video class: Create A Mortgage Calculator - Python Tkinter GUI Tutorial 19812m
Video class: Take Screenshots From Your Tkinter App - Python Tkinter GUI Tutorial 19907m
Video class: Build a Language Translator App - Python Tkinter GUI Tutorial 20021m
Video class: Add Text To Speech To Our Translator App - Python Tkinter GUI Tutorial 20107m
Exercise: In a Tkinter translation app using pyttsx3, which method executes queued speech and blocks until completion?
Video class: How To Get System Info From Tkinter - Python Tkinter GUI Tutorial 20207m
Video class: Add Text To Images With Pillow - Python Tkinter GUI Tutorial 20312m
Video class: Build An Age Calculator - Python Tkinter GUI Tutorial 20407m
Video class: Bind Text From Textbox - Python Tkinter GUI Tutorial 20506m
Exercise: Avoiding extra newline when mirroring Text to Label in Tkinter
Video class: Create A Deck Of Cards And Deal Them Out - Python Tkinter GUI Tutorial 20624m
Video class: Create War Card Game - Python Tkinter GUI Tutorial 20716m
Video class: Build A Blackjack Card Game - Python Tkinter GUI Tutorial 20820m
Video class: Check For Blackjack When Game Starts - Python Tkinter GUI Tutorial 20914m
Exercise: In a Tkinter Blackjack app, what is the proper way to handle the Hit and Stand buttons immediately after detecting blackjack at the initial deal?
Video class: Blackjack Check For Tie/Push - Python Tkinter GUI Tutorial 21008m
Video class: Blackjack Hit Me! - Python Tkinter GUI Tutorial 21109m
Video class: Blackjack Convert Ace To One - Python Tkinter GUI Tutorial 21208m
Video class: Blackjack Player Stand and Dealer Hit - Python Tkinter GUI Tutorial 21311m
Exercise: Tkinter Blackjack Stand logic when dealer is below 17
Video class: Blackjack Draw Five Cards and Win - Python Tkinter GUI Tutorial 21409m
Video class: Build A Word Dictionary - Python Tkinter GUI Tutorial 21512m
Video class: Build A Base64 Encrypt and Decrypt Tool - Python Tkinter GUI Tutorial 21614m
Video class: How To Add Maps To Your Tkinter App - Python Tkinter GUI Tutorial 21708m
Exercise: Which tkintermapview method centers the map using latitude and longitude?
Video class: Add Slider and Lookup Form To Map App - Python Tkinter GUI Tutorial 21808m
Video class: Modern GUI Design With Tkinter - Python Tkinter GUI Tutorial 21908m
Video class: Modernize Our Dictionary App With CustomTkinter - Python Tkinter GUI Tutorial 22011m
Video class: Modern Buttons With Images - Python Tkinter GUI Tutorial 22109m
Exercise: How do you position an image relative to text on a CustomTkinter CTkButton?
Video class: Build a Quick Language Detection App - Python Tkinter GUI Tutorial 22209m