Boost allows to create threads in any executable or library, it doesn't natter whether it exposes some UI functions or not. Any non-trivial project contains executables and libraries. In main executable working with Qt, you may use both Qt and Boost threads. In helper non-UI libraries you need Boost threads. Generally, in such case it is better to use Boost threads always.