Up to this point, we have been creating applications that only have one widget serving as the main component and, by extension, a window too. However, GUI applications are usually made up of several widgets that come together to communicate a process to the user. One way in which we can make use of multiple widgets is to use layouts to serve as the canvas into which we insert our widgets.
Consider the following class inheritance diagram:
It is important to consider the classes used in laying out widgets. As usual, the top class from which the QLayout abstract class inherits is QObject. Also, QLayout makes use of multiple inheritances by inheriting from QLayoutItem. The concrete classes here are QBoxLayout, QFormLayout, QGridLayout, and QStackedLayout. QHBoxLayout and QVBoxLayout further refine what the QBoxLayout class is by adding orientation to how the widgets within...