Generic progress reporting system design

I am currently writing several GUI applications which have lengthy operations (like installation, import of data, remote execution, etc...) and I want to report the progress for each operation (let's say using a QProgressDialog). The progress information consists of:

So my idea is to subclass QObject instead and create a class which have the desired signals and functions. This class will be the superclass of my program components, and my components will be running in their own thread.This way, I have a uniform way of reporting progress to the user interface. Is it a good design ? Is there a way to achieve this without replicating QFuture interface?