Meta-Object Compiler (moc)
Qt use the moc to read c++ source files and for class declarations that contain the Q_OBJECT macro it produces another c++ source file. The generated file contains the meta-object code for the class.
QObject: This is the base class of all qt objects. QObjects organize themselves in object trees and to debug the tree use dumpObjectTree(). To show information about the object use dumpObjectInfo().
Q_OBJECT: This macro inside the private section of the class declaration is what the moc use to know where it should do it's work.
signals and slots