Before getting in to details - have you checked QtConcurrent?
It looks to me, your case exactly meant for that.
It will save you the whole sub classing issue.