Signals & slots mechanism:
  • many-to-many connections,
  • you can connect and disconnect objects in the runtime,
  • connected objects doesn't have to know anything about each other.


Direct method invocation:
  • many-to-one connection,
  • you must have a pointer or the object itself to invoke a method,
  • there is no way to disconnect those object without using conditional statements around the call,
  • a bit faster (although speed-up usually won't be noticeable).

What to use depends on the design.