Tkinter is the built-in GUI package that comes with standard Python distributions. It is a cross-platform package, which means you build once and deploy everywhere. It is simple to use and intuitive in nature, making it suitable for programmers and non-programmers alike.This video will help you master the art of GUI programming.
It delivers the bigger picture of GUI programming by building real-world, productive, and fun applications such as a text editor, drum machine, game of chess, media player, drawing application, chat application, screen saver, port scanner, and many more. In every project, you will build on the skills acquired in the previous project and gain more expertise.
You will learn to write multi threaded programs, network programs, database driven programs and more. You will also get to know the modern best practices involved in writing GUI apps. With its rich source of sample code, you can build upon the knowledge gained with this video and use it in your own projects in the discipline of your choice.
About The Author
Bhaskar Chaudhary is a professional programmer and information architect. He has an experience of almost 9 years in consulting, contracting, and educating in the field of software development. He has worked with a large set of programming languages on various platforms over the years.
He is an electronics hobbyist and a musician in his free time.
Install the Python Interpreter package from the official repository or build it directly from the source link.
Learn to describe the different styles of importing Tkinter modules.
Ability to use the components of GUI programming.
Learn to draw board to capture your ideas. The drawing board that you will use is called the root window.
Explore the ability to build blocks of GUI programs in the widgets.
Learn how to add widgets to a screen and position them where you want.
Make widgets functions to response events such as pressing of buttons, the pressing of keys on a keyboard, and mouse clicks.
Learn to add a string variable to track what the user enters into the entry widget or text widget.
Learn to provide the unbind option to undo the effect of an earlier binding.
Learn to specify your own styling of widgets, such as their color, font size, border width, and relief.
Discuss on some commonly used options for the root window.
Gain the ability to implement the broad visual elements of the text editor.
Learn to present a large number of choices to the user without cluttering the interface.
Drag down the majorities of the visual elements of the text editor.
Implement some common features in the text editor to handle common text-related functions.
Achieve the ability to target each character or location of the text with precision.
Get the ability to apply the seltag to the entire text in the widget.
Learn to a search keyword and specifies whether the search needs to be case-sensitive. When the user clicks on the Find All button, all matches are highlighted.
Introduce the indexing and tagging—two very powerful concepts associated with many Tkinter widgets. You will find yourself using these two concepts all the time in your projects.
Implement the functionality of the File menu options of Open, Save, and Save As. We can implement these dialogs using the standard Tkinter widgets.
Gain the ability to provide readymade message boxes to display a wide variety of messages in applications.
Learn to add shortcut icons to the toolbar.
Work towards showing the line numbers to the left of the Text widget. This will require us to tweak the code at various places.
Learn to add the cursor information bar, which is simply a small label at the bottom-right corner of the Text widget, which displays the current position of the cursor.
Define a color scheme dictionary containing the name and hexadecimal color codes as a key-value pair.
Complete the editor in this final iteration by adding a contextual menu to the editor.
Learn to add built-in libraries from the standard Python distribution, which includes Tkinter, os, math, threading, and pickle modules to verify that these modules do exist.
Achieve the ability to build our drum program using OOP to setup the GUI.
Build a good data structure and add a code which will naturally be more simple, elegant, and easy to maintain.
Generate a broader visual elements which will divide the program into four broad visual sections.
Learn to play sound files, in the order of a beat pattern decided by the user.
Mechanism to load drum samples and a mechanism to define beat patterns in place.
Gain the ability to handle the threading module of Python to play the pattern in a separate thread. This way, pygamewill not interfere with Tkinter's main loop.
Extend our drum machine to create more than one pattern in the same program which will provide us the ability to play different patterns simply by changing the pattern number.
Achieve the ability to store values in some form of file storage and reload, play, and even edit the patterns. We need some form of object persistence.
Gain the ability to work with the ttk-themed widgets.
Learn to write programs in the Model-View-Controller (MVC) architecture.
Ability to record the position of the chess pieces on the chessboard and define the locations to identify the chess pieces.
Define classes for every individual piece as a subclass of this parent Piece class and then override all the attributes and methods in individual classes.
The objective of this iteration is to move the chess pieces with a click of the left mouse button. When a player clicks on a chess piece, the code should first check whether it is a legitimate turn for that chess piece.
This video will show you how to manage User preferences smartly and enhances the User interactions.
Learn to use cross-platform modules to write the code and to ensure that the player can play audio files on the Windows, Mac OS X, and Linux platforms.
Ability to build the broad modular structure for the program to keep the data structure, audio-related logic.
Learn to use the Play_list method to write the getter method for the playlist.
Learn to write some code for a feature that allows us to add and remove items from a playlist.
Generate code for the play/stop, pause/unpause, next track, previous track, fast forward, rewind, volume change, and mute/unmute features.
Learn to create our own Seekbar widget to add a seek bar to the audio player.
Learn to generate the one time update information while playing the audio.
Learn to update the position of the seek bar knob and the elapsed play duration.
Gain the ability to add the feature that allows users to loop over tracks.
Achieve the ability to add a tooltip named the Balloon widget to all the buttons in our player.
Gain the ability to create a framework on your own that makes menu generation easy for us.
Learn to create a PaintApplicationclass to draw the menu using our framework and import the framework into our Framework class.
Learn to know where the mouse was first clicked and where it was released.
Achieve the ability to add 16 buttons to the left toolbar depending on which button is clicked, different options would show up in the top bar.
Configure the items which you have added at the time of creating the object or later using the itemconfigmethod or the addtag_withtagmethod.
Gain the ability to provide a color chooser, letting the user select two different colors: the foreground color and the background color.
Learn to display the options for the top bar dynamically.
Gain the ability to draw a variety of interesting shapes on the drawing canvas.
Learn to add the functionalities to the remaining toolbar buttons into the canvas.
Learn to add the functionality to modify the empty methods to make them functional.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.