Quote Originally Posted by Brandybuck View Post
Qt gives you a much more flexible system. You can connect multiple signals to one slot. One signal to multiple slots. Or multiple signals to multiple slots. You can even connect a signal to a signal! It allows you to pass information in a natural way, as custom parameters to your slot. It allows you connect and disconnect objects dynamically at runtime.
It even allows you to enumerate methods of a class and call a method by name (meaning not by having a pointer to it, but actually by calling its name - see QMetaObject::invokeMethod) and allows to pass as arguments and retrieve as the result non-standard datatypes. Furthermore it allows you to change properties of object without even knowing their types (on the other hand you can ask for the type) or functions responsible for getting or setting a particular property (enumerating properties is of course also possible so your code can handle custom components it knew nothing about during compilation). The whole concept is very flexible because of its runtime capabilities and in my opinion fully justifies the need to use an additional tool to process the code (especially that it gives means to do it automatically).