
John Elder guides a bundled Tkinter Python GUI masterclass blending courses—intro to counter, math flashcard app, MP3 player, and paint program—with 100 videos and sections you can jump between.
Check out my student Facebook Group...
It's a great place to get fast support for this course from me, to interact with other students, to post your projects and code, and to access course announcements and extras...
Join Now!
https://www.facebook.com/groups/codemycom/
Explore Kintyre for Python to build desktop applications with graphical user interfaces, using widgets such as buttons, labels, and menus, and learn to package them as executable files.
Download the latest Python version, install it, and add Python to path so you can run it from anywhere; reinstall if you've installed it before.
Install python, then set up a text editor (Sublime Text) and a terminal (Git Bash) on Windows, noting free alternatives like Notepad++ and Visual Studio Code.
Create a project directory and set up a Python virtual environment with python -m venv, then activate and deactivate it, noting Mac or Linux use the source command.
Create your first Tkinter GUI by saving hello.py, importing Tkinter, creating a root window, setting the title to Hello World, configuring geometry, and running the main loop.
Learn to create and display a label widget in Tkinter on the root window, using pack or the grid system.
Explore Tkinter label options, adjusting foreground and background colors, font, and relief, then set height, width, padding, and state while using pack or grid for layout.
Master the grid system in Tkinter, placing widgets with zero-based rows and columns to achieve precise layouts beyond simple pack.
Explore grid options in the Tkinter GUI, using sticky alignment to place widgets, and apply column or row spans to stretch across multiple columns or rows.
Create a Tkinter button in the root window with text 'click me', pack it, and define a clicked command that updates a label, and explore lambda for passing arguments.
Learn to create and configure a Tkinter entry widget to accept user input, resize with width and font size, retrieve text via e.get, and display results with a button.
Learn to add a custom icon to a Tkinter app by using root.iconbitmap with an .isco icon file, saved beside your program, typically 16x16 or 32x32 pixels.
Learn to display images in tkinter by installing Pillow, importing PIL.Image and ImageTk, and showing an image in a label with open file handling.
Demonstrate hiding and restoring a Tkinter label with pack_forget and pack (or grid forget), and contrast with destroy to permanently remove widgets, while explaining variable scope and global usage.
Define a main menu and attach it to the root window, then create submenus like file, edit, and selection with cascade and commands.
Create a second menu item in the Tkinter program by adding an edit submenu, labeling options like cut, copy, and paste, and wiring them to their commands.
Learn to use frames in tkinter to group widgets, create a blue framed area with a label, and control visibility with show and hide buttons.
Learn to integrate frames with menus by wiring menu commands to show the file, edit, and cut frames, and manage frame visibility to respond to menu selections.
Learn to hide and show frames in a Tkinter app by toggling frames with menu items, using grid and grid_forget to switch views and build a clean graphical user interface.
Learn to create a Tkinter status bar by using a label, adjusting width and anchor, and updating a string variable to show actions like file and cut status.
Learn to implement radio buttons in tkinter by binding a shared variable to two options, updating the display with v.get, and using conditional logic to react to the selected value.
Explore checkboxes in tkinter: set on and off values, bind to a variable, and display selections like peperoni toppings using a check button and a dynamic label.
Discover how to create pop up message boxes in a Tkinter Python GUI, using showinfo, showwarning, showerror, and ask dialogs with yes/no or ok/cancel options triggered by a button.
Learn to use tkinter pop up boxes and capture responses with a response variable, then drive actions and update a label based on yes, no, or ok.
Create and configure a Tkinter combo box, populate it with a Python dictionary of options, set a default, and display the chosen item with a button.
Create and manage new windows in Tkinter using a top level window, open a second window with a button, and update its label via the main loop.
Learn to manage multiple windows by hiding and showing the main window, and destroying or iconifying a second window with buttons to quit and minimize.
Learn to display images in a new Tkinter window by loading an image, attaching it to a label, and managing main loop scope or globals to prevent garbage collection.
Open a file dialog in Tkinter to select image files, set the initial directory and dialog title, and specify file type filters such as png, jpg, or all files.
Create a button that opens Tkinter's open file dialogue box, captures the selected image's file path, and displays it on screen via a label and image widget.
Learn how to overwrite and clear Tkinter labels using grid forget and destroy, build a simple form with an entry, a submit button, and a clear button, while managing scope.
learn how to overwrite and clear tkinter labels using grid forget or destroy, define the label outside functions, and choose between a clear function or destroy to reset the ui.
Learn how to use the color chooser in Tkinter to open a color picker, capture RGB and hex values, and apply them to interface elements such as backgrounds.
Use a color picker in tkinter to obtain a hex code and apply it to a label’s text and background, with font styling and packing.
Create a standalone Windows executable from a Python program using PyInstaller, packaging into a one-file exe with a specified icon and a windowed mode.
Build a Tkinter flashcard app with a top menu and math cards, enabling add, subtract, multiply, divide, and exit. Experiment with more card types as you refine the menu.
Create separate frames for add, subtract, multiply, and divide in a Tkinter flashcard app, configure 400x400 frames with colors, and manage visibility with pack/grid forget and remember.
Learn to build a math flashcard GUI in Tkinter by generating random integers between zero and ten, displaying them on a label, and adding an answer entry and a button.
Build a Tkinter flashcard app using IntVar for two random numbers, with get and set and a lambda to pass them to the answer function, generating numbers after each card.
Build a Tkinter flashcard feature that computes the correct answer from two inputs, compares it to the user entry, and updates a label with a correct or incorrect message.
Learn how to give informative feedback in a Tkinter flashcard app by constructing dynamic correct or incorrect messages, converting numbers to strings, and updating the display as new questions appear.
Learn to clear the answer box, generate two new random numbers, and update the flashcard display using the Tkinter config method while tracking correct or incorrect responses.
Repurpose the existing add flashcard code to implement a subtraction flashcard in the Tkinter app, renaming functions, frames, and labels, updating the logic to subtract, and debugging outputs during tests.
Convert the flashcard app’s add function to multiply, updating frames and flash messages, and verify multiply answers with the updated steps.
Learn to implement division in the Tkinter flashcard app by adapting the existing add and subtract logic to create divide operations, handle floats, and prevent division by zero.
Destroy all child widgets in a Tkinter frame by looping through frame.winfo_children and calling destroy, preventing duplicates when switching between add, subtract, multiply, and divide frames.
Create a Tkinter start screen with a start frame, a label reading 'welcome to math flashcards', and four buttons for addition, subtraction, multiplication, and division.
Toggle between the menu and the start screen in a Tkinter app by creating a home function, calling it at startup, and managing frames for navigation.
learn to build a tkinter and python paint program with brush shapes, color and size control, canvas color, and save or clear features, from setup to code.
Learn to download and install Python on Windows, choose the 32-bit installer, add Python to path, and accept default settings to ensure a smooth, ready-to-go setup.
Learn to install the Sublime Text editor and the Git Bash terminal, using the course's recommended free tools for smooth Tkinter development.
Launch your first tkinter program by creating a paint directory for your counter app, import tkinter, build a window, set the title and size, and run the main loop.
Learn to create a tkinter canvas, a 600 by 400 surface, and pack it with padding. Use variables for width and height instead of hard coding to boost drawing flexibility.
Draw a red line on the canvas with create_line using two points, x1,y1 and x2,y2, to understand the coordinate system and how a second line forms a cross.
Bind the left mouse button motion (B1-Motion) to the canvas to enable drawing, using a paint function that tracks events and updates color and lines.
Learn to draw with the mouse on a Tkinter canvas by implementing a paint function, tracking start and end positions from mouse events, adjusting color, size, and smoothing.
Define brush parameters to control width, color, and brush type with cap style, enabling round, diamond (projecting), and slash styles.
Create a brush options frame under the canvas to hold dynamic color and size controls in the Tkinter GUI, then pack it in the root window for future controls.
Create a brush size frame in a Tkinter canvas app by adding a label frame, placing controls with grid, and preparing a slider to dynamically adjust brush size.
Add a brush size slider to a tkinter GUI within the brush size frame using the Teekay scale widget, with a 1–100 range, vertical orientation, and a default of 10.
Learn to display and update the current brush size from a Tkinter slider, convert the float value to an integer, and apply it to the canvas brush width for drawing.
Create a brush type control using three radio buttons for round, slash, and diamond, bound to a string variable brush_type, and use brush_type.get() in the paint function.
Explore how to add color controls in a Tkinter drawing app: create a change colors frame, add brush color and canvas color buttons, and stub functions to implement color changes.
Learn to use the color chooser widget to pick a brush color and update the brush and canvas in Tkinter, retrieving the hex color code for a global brush color.
Add a program options frame in a Tkinter GUI, include clear screen and save image buttons wired to clear_screen and save_image, and arrange widgets with grid and pack.
Implement a clear screen function in a Tkinter canvas by deleting all items and resetting the canvas background to its default white, enabling quick resets after drawing.
Demonstrate using Tkinter's file dialog to show a save as box, set the initial directory, and save images as PNG with a PNG file type filter.
enforce the correct png extension by validating the file name ends with .png and appending .png when missing, ensuring the image saves as png.
Learn to save a canvas as an image by capturing a targeted screenshot of the app area using the Pelo (PIL) library, after installing it with pip install Pelo.
Implement saving the canvas as a PNG via a file dialog, validate the file name, then crop with image grab using root window and canvas coordinates and save.
Import tkinter messagebox to pop up a save confirmation, display your image has been saved, and learn to save, run, and test drawing with brush size, color, and canvas options.
Turn your python gui program into a standalone exe using pyinstaller with a one-file, windowed build. Share the executable across Windows, Linux, and Mac via cloud storage or drive.
Learn to build an mp3 player using a Python GUI toolkit, with step-by-step guidance, free tools, and direct instructor support for course questions.
Download the latest Python from the official site, uninstall any old versions, and add Python to the path during installation; avoid Anaconda and use Python 3.x for this course.
Download and install Sublime Text as the code editor and Git Bash as the terminal across Windows, macOS, and Linux for Python development.
Set up your Python GUI project by creating a directory, building and activating a virtual environment, and preparing project files for Tkinter development across Windows, macOS, and Linux.
Begin by saving a new Python file and importing tkinter. Create the root window, set the title to mp3 player, define geometry 500 by 400, and run root.mainloop.
Create a playlist box with the listbox widget in Tkinter, define and pack it into the root window, and customize padding, colors, and width for a polished UI.
Set up an images folder and import play, stop, and pause button images for a Tkinter GUI. Convert these images into clickable button widgets that play a song when pressed.
Build a Tkinter mp3 player control panel by creating a control frame with back, forward, play, pause, and stop buttons, arranged on a grid with padding, preparing for image replacement.
This lecture covers defining image assets with PhotoImage, placing them in an images directory, and assigning them to Tkinter buttons with image=, including back, forward, play, pause, and stop.
Create a top menu with an add songs sub menu, wire commands to add songs to the playlist, define its functions (initially pass) and set tear off to zero.
Learn to open a Tkinter file dialog to add songs to a playlist, selecting files from a dedicated audio folder and setting a default directory for quick access.
Set the add song file dialog to open in the audio directory by default using initialdir and filter for mp3 files, then display the selected song name.
Learn to add songs to the Tkinter playlist box at the end and strip directory structure from the path so only the song title remains using Python string replace.
Change playlist colors by customizing a Tkinter ListBox in Python: set the select background to green and the select foreground to black, then explore color options.
Extend a single song setup to add many songs to a Tkinter playlist by looping through ask open filename(s), processing each song, and appending to the playlist.
Create a remove songs submenu in the main Tkinter menu, add commands to delete a single song or all songs from a playlist, and define the corresponding functions.
implement delete functions for a Tkinter playlist: remove the highlighted song and delete all songs using zero-based indices, with practical in-app testing.
Install pygame via pip in your Python virtual environment, import it, and initialise the mixer to use its music system for playing songs.
Learn to wire a play button that builds the mp3 path from the playlist box's active song, loads it with pygame.mixer.music.load from the audio directory, and plays it with pygame.mixer.music.play(loops=0).
Implement a single pause button that toggles a song by passing a paused state via a lambda into a pause function, calling pygame.mixer.music.pause or unpause.
Create forward and back navigation for a Tkinter playlist by computing the next or previous song from the current index, handling zero-based numbering and tuple returns.
Implement the forward button by selecting the next song from the playlist, formatting its path, updating the listbox selection, and invoking play to advance to the next track.
Implement a previous song function and wire the back button to call previous_song, mirroring the next_song logic but subtracting one from the current song.
Create a status bar in a Tkinter app by adding a label widget at the bottom with a border, relief, anchored to the east, stretched across the window, and padded.
Learn to track a song's current play time in a Tkinter app by querying Pygame mixer for the position, converting milliseconds to seconds, and updating a label every second.
This lecture demonstrates converting the current time to a minutes:seconds format using Python's time module, displaying it in a Tkinter status bar with a live update every second.
Discover how to measure an MP3 length in a Tkinter Python GUI by installing Mutagen, creating an MP3 instance, and converting seconds to a readable time format.
Learn to fix the stop function in a Tkinter GUI by clearing the status bar text when playback stops and adding a conditional check to stop updating the timer.
Introduce a vertical volume slider for the song in a labeled frame beside the playlist. Use a scale from 0 to 1 and adjust the layout with frames.
Demonstrate wiring a volume slider to a volume function that reads the slider value (zero to one) and applies it to pygame's volume control to adjust playback.
Create a horizontal song slider in the main frame to rewind or fast-forward a playing track, starting at zero toward a hundred, using a grid-based slide function.
Set the slider's to value to the song length and refresh it in the play time function as each song plays, displaying the length on a label in raw seconds.
Move the slider one second at a time as the song plays, using the play time function to increment the slider and update its value to match the song length.
Learn how to implement a pause button for a Tkinter slider, using a paused flag and an if statement to halt movement and synchronize with the status bar.
Implement a stop function for a Tkinter slider using a global stopped flag, default false, and guard the play time function to return early, resetting the flag when playback resumes.
reset the slider and status bar when moving to the next or previous song. update the play time automatically as the new track starts.
Move the slider to change the song position and play from the slider's current position by setting start to the slider value, and display elapsed position in status bar.
Learn to synchronize a Tkinter slider with the song's elapsed time by updating the status bar and converting the slider position to time format.
Learn to detect the end of a track by comparing the song slider to its length, using integer values and an if/else flow to stop, reset, and finish playback.
Discover the ultimate Tkinter Python gui masterclass and this bonus lecture, which promotes a lifetime membership offering 60+ courses, discounted access with coupon code Udemy, and project-based Tkinter projects.
In this course I'll teach you how to make graphical user interfaces for Python using TKinter. You'll be surprised just how quickly you can create some pretty cool looking apps! This is a bundle of three of my most popular TKinter courses here on Udemy, you get them all in one course!
I'll show you the ins and outs of TKinter, and then I'll show you how to package your app as an .exe file that you can share with others!
We'll start out by learning all about the main TKinter widgets. Everything in TKinter is a widget...from labels, to buttons, input boxes, and more.
After we've learned all the major Widgets, we'll build a fun Math Flashcard app. Our app will have addition, subtraction, multiplication, and division flashcards.
Then we'll move into more advanced apps.
We'll build a fun Paint App that lets the user draw simple pictures with Tkinter. Then we'll build a cool little MP3 music player app.
If you've ever wanted to create GUI apps with Python, this is the course for you!