I think the better approach would be to embrace the framework you are using and use signal/slots.
That being said, if the code in question works, and is not ugly or causing problems, then you may be best to leave it alone.
Consulting the Signal/Slot documentation describes why the Signal/Slot approach is better:
Callbacks have two fundamental flaws:
Firstly, they are not type-safe. We
can never be certain that the
processing function will call the
callback with the correct arguments.
Secondly, the callback is strongly
coupled to the processing function
since the processing function must
know which callback to call.
Do be aware of the following though:
Compared to callbacks, signals and slots are slightly slower because of the increased flexibility they provide
The speed probably doesn't matter for most cases, but there may be some extreme cases of repeated calling that makes a difference.