Title Page Copyright and Credits Tkinter GUI Application Development Blueprints Second Edition Packt Upsell Why subscribe? PacktPub.com Contributors About the author About the reviewer Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Meet Tkinter Technical requirements Project overview Getting started GUI programming – the big picture The root window – your drawing board Widgets – the building blocks of GUI programs Some important widget features Ways to create widgets Getting to know the core Tkinter widgets Adding widgets to a parent window The Tkinter geometry manager The pack geometry manager The grid geometry manager The place geometry manager Events and callbacks – adding life to programs Command binding Passing arguments to callbacks Limitations of the command option Event binding Event patterns Binding levels Handling widget-specific variables Event unbinding and virtual events Doing it in style Specifying styles Some common root window options Getting interactive help Summary QA section Further reading Making a Text Editor Project overview Getting started – setting up the editor skeleton Adding a menu and menu items Adding menu items Implementing the View menu Adding a built-in functionality Indexing and tagging Index Tags Implementing the Select All feature Implementing the Find Text feature Types of Toplevel window Working with forms and dialogs Working with message boxes The icons toolbar and View menu functions Displaying line numbers Adding the cursor information bar Adding themes Creating a context/pop-up menu Summary QA section Further reading Programmable Drum Machine Getting started Technical requirements Setting up the GUI in OOP Finalizing the data structure Creating broader visual elements Defining getter and setter methods The number of units and beats per unit features Loading drum samples Playing the drum machine Initializing pygame Playing complete patterns Determining the tempo of a rhythm Tkinter and threading Tkinter and thread safety Support for multiple beat patterns Saving beat patterns Working with ttk-themed widgets Summary QA section Further reading Game of Chess An overview of the chapter Module requirements for this chapter Structuring our program Modeling the data structure Convention on naming chess pieces Convention for naming locations on the chessboard Creating a Piece class Displaying chess pieces on the chessboard Defining rules for the chess pieces Rules for the king, queen, rooks, and bishops Rules for the Knight Rules for a pawn Movement validation of chess pieces Tracking all available moves Finding out the current position of the king Checking whether the king is in check Making the game functional Getting the source and destination position Collecting a list of the moves that need to be highlighted Highlighting allowed moves Pre-move validation Check whether a move will cause check on the King Recording a move in the data structure Keep game statistics Managing user preferences Summary QA section Further reading Building an Audio Player An overview of the chapter External library requirements The pyglet module Pmw Tkinter extension Program structure and broadview skeleton Deciding the data structure Creating the Player class Adding and removing items from a playlist Adding a single audio file Removing the selected files from a playlist Adding all files from a directory Emptying the playlist Playing audio and adding audio controls Adding the play/stop function Adding the pause/unpause function Adding the mute/unmute function Fast forward/rewind function Adding the next track/previous track function Adding the volume change function Creating a seek bar One-time updates during audio playback Managing continuous updates Looping over tracks Adding a tooltip Pmw list of extensions Widgets Dialogs Miscellaneous Summary QA section Further reading Paint Application Overview of the application Creating a tiny framework Setting up a broad GUI structure Dealing with mouse events Adding toolbar buttons Drawing items on the canvas Adding a color palette Adding top bar options for draw methods Drawing irregular lines and super shapes Drawing irregular lines Drawing super shapes Adding functionality to the remaining buttons Adding functionality to menu items Summary QA section Further reading Piano Tutor Technical requirements A brief primer on piano terms Learning about scales Learning about chords Building the broad GUI structure Putting up the skeleton structure Making the piano keyboard Putting the keyboard together Playing audio Building the scales tutor Building the chord finder section Building the chord progression tutor Building the score maker A note on window responsiveness Experimenting with the code Handling widget resize with <Configure> Summary QA section Further reading Fun with Canvas Building a screen saver Graphing with Tkinter Polar plots with Tkinter Gravity simulation Drawing fractals Voronoi diagrams Spring pendulum simulation Chaos game – building triangles out of randomness Phyllotaxy 3D graphics with Tkinter Summary QA section Further reading Multiple Fun Projects Technical requirements Building a Snake game Understanding a race condition Using synchronization primitives Using queues Building the Snake game The View class The Food class The Snake class Queue handler Creating a Weather Reporter application A simple socket demo Building a port scanner Building a chat application Creating a phone book application Creating a new record Reading from the database Updating records Deleting records Using asyncio with Tkinter Interfacing with hardware/serial communication Hardware Writing the Arduino sketch Reading serial data Summary QA section Further reading Miscellaneous Tips Tracing Tkinter variables Widget traversal Validating user input Key validation mode demo Focus-out validation mode demo Formatting widget data More on fonts Finer control over font Building a font selector Redirecting the command-line output to Tkinter The class hierarchy of Tkinter Tips for program design The model-first policy versus the code-first policy Separating the model from the view Selecting the right data structure Naming variables and methods The Single Responsibility Principle Loose coupling Handling errors and exceptions Handling cross-platform differences  Tips for program optimization Using filter and map Optimizing variables Profiling your program Other optimization tips Distributing a Tkinter application py2exe py2app PyInstaller Other freezing tools The limitations of Tkinter A limited number of core widgets Non-Python objects No support for printing No support for newer image formats Inactive development community Alternatives to Tkinter wxPython PyQt PySide PyGTK Other options Tkinter in Python 2.x Summary QA section Other Books You May Enjoy Leave a review - let other readers know what you think