Tkinter GUI Application Development Blueprints, Second Edition - Second Edition
by Bhaskar Chaudhary
Tkinter and threading
One of the simplest ways that we can make our root window responsive is to use the root.update() method within our play_pattern loop. This updates the root.mainloop() method after each sound sample is played.
However, this is an inelegant method because the control is passed to the main loop with some staggering experienced in the GUI. Thus, you may experience a slight delay in the responses of other widgets in the Toplevel window.
Further, if some other event causes the method to be called, it could result in a nested event loop.
A better solution would be to run the play_pattern method from a separate thread.
Let's use the threading module of Python to play the pattern in a separate thread. This way, pygame will not ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access