Book Image

Tkinter GUI Application Development HOTSHOT

By : Bhaskar Chaudhary
Book Image

Tkinter GUI Application Development HOTSHOT

By: Bhaskar Chaudhary

Overview of this book

<p>Tkinter is the built-in GUI package that comes with standard python distributions. This means it is easy to get started right away, without any extra installation or configuration. Tkinter’s strength lies in its simplicity of use and its intuitive nature which makes it suited for programmers and non-programmers alike. Once you get started, you will be surprised to see how a few lines of code can produce powerful GUI applications.</p> <p>Tkinter GUI Application Development Hotshot helps you learn the art of GUI programming—building real-world, productive and fun applications like text editor, drum machine, game of chess, media player, drawing application and many more. Each subsequent project builds on the skills acquired in the previous project. Also, learn to write multi-threaded and multi layered applications using Tkinter. Get to know modern best practices involved in writing GUI programs. Tkinter GUI Application Development Hotshot comes with a rich source of sample codes that you can use in your own projects in any discipline of your choice.</p> <p>Starting with a high level overview of Tkinter that covers the most important concepts involved in writing a GUI application, the book then takes you through a series of real world projects of increasing complexity, developing one project per chapter. After you have developed five full projects, the book provides you with some bare-bone skeleton codes for a few functional but incomplete projects, challenging you to put your skills to test by completing them.</p> <p>Finally, you are provided with tips for writing reusable, scalable, and quality GUI code for larger projects. The appendices provide a quick reference sheet for Tkinter.</p>
Table of Contents (16 chapters)
Tkinter GUI Application Development HOTSHOT
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Tkinter and threading


Our drum machine plays patterns in the way that we want it to. However, there is a small problem. The play method blocks the main loop of our Tkinter program. It does not relinquish control back to the main loop until it is done playing all of the sound samples.

This means that if you now want to click on the Stop button or change some other widget, you will have to wait for the play loop to complete.

You might have noticed that when you hit the Play button, it remains pressed for the time the sound loops are being played. During that time you cannot access any other widget in the Toplevel window.

This clearly is a glitch. We need some method to confer back the control to Tkinter main loop while the play is still in progress.

Prepare for Lift Off

One of the simplest ways that we can achieve this is to use the root.update()method within our play loop. This updates the root.mainloop() method after each sound sample is played (see the commented code in 3.07.py).

However, this...