Built-in widgets
A design principle adopted early on by Matplotlib was one of interoperability. It shouldn't matter which GUI you are using; everything should just simply work. Therefore, Matplotlib provides a basic set of widgets that are entirely implemented using Matplotlib's interactivity framework. All of the built-in widgets are implemented using nothing more than what we have covered in this book so far. While these widgets may not be the most aesthetically pleasing ones, they will work in any interactive environment that you use for regular plotting.
Conceptually, many widgets emit specialized events that can have callbacks attached by developers. However, the mechanism to attach these callbacks is much more direct than the more generalized event handling that we worked with back in Chapter 2, Using Events and Callbacks. This makes working with widgets accessible to inexperienced programmers who are yet to learn how to create a GUI application.
Indeed, given that the primary...