Description
In this course, you will :
- Learn how to create a graphical user interface with Tkinter and Python!
- Make a variety of Tkinter projects, such as forms, games, and even a chat app that interacts with a web API.
- Understand Tkinter's two most important Geometry Managers: grid and pack.
- Discover how to use a wide range of widgets, including labels, entries, buttons, spinboxes, and even the Canvas!
- Learn how themes and styles work in Tkinter, as well as how to create your own styles and use them in your applications.
- Throughout the course, adhere to best practises for Python and Tkinter code as taught by an experienced professional software developer.
Syllabus :
1. Python Refresher
- 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)
2. Creating Your First Tkinter App
- 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
3. 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
4. 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
5. 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
6. 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
7. Milestone Project: Pomodoro Timer
- 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
8. 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
9. Build a Snake Game with Tkinter
- Build the Snake Game!
10. 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