Most of the special functionality that Qt offers revolves around the
QObject class and the meta-object paradigm that we will take a closer look at now. The paradigm says that with every
QObject subclass, there is a special object associated that contains information about that class. It allows us to make runtime queries to learn useful things about the class—the class name, superclass, constructors, methods, fields, enumerations, and so on. The meta-object is generated for the class at compile time when three conditions are met:
Q_OBJECTmacro in a private section of its definition
We can comply ...