If I'm reading this thread correctly and you are trying to launch a widget from within a class that is a sub-class of QThread, than please note:
Each QThread can have its own event loop. You can start the event loop by calling exec(); you can stop it by calling exit() or quit(). Having an event loop in a thread makes it possible to connect signals from other threads to slots in this thread, using a mechanism called queued connections. It also makes it possible to use classes that require the event loop, such as QTimer and QTcpSocket, in the thread. Note, however, that it is not possible to use any widget classes in the thread.
ref:
QThread
Most likely anything not referenced back to QtGui module will probably work because it doesn't have dependency to the main gui event loop.
If the QDialog is being created in a non-sub qthread class and I've got that wrong from the posts. Then maybe something like this:
{ CDialogBox *dialogBox = new CDialogBox dialogBox(this);dialogBox->exec(); } // parented
{ CDialogBox dialogBox(0);dialogBox.exec(); } // non-parent
{ CDialogBox dialogBox();dialogBox.exec(); } // non-parent and defined default is 0 in declaration