Если нужно одну ф-цию выполнить в потоке, глянь в сторону QtConcurrent::run
пример из ассистента
void someFunction(int arg1, double arg2);
QFuture<void> future = QtConcurrent::run(boost::bind(someFunction, 1, 2.0));
ну или без параметров
void foo();
QFuture<void> future = QtConcurrent::run(foo);
если нужно будет ожидание, то используй