connect() is a template method. When it is used, it takes the arguments of the given slot and instantiates a template marshaller that is responsible for converting the GValues that the signal provides to the C++ types that the slot expects. This marshaller and the structure holding the receiver & slot are then attached on the data of a GClosure and this GClosure is connected to the signal.