Originally posted by serg
Why do you think what it's possible?
Why shouldn't it be?

Different scheduling strategies can be implemented into the kernel. Putting all threads of one process to one CPU is certainly an option. "What for?" - you may ask... For example to minimize context-switching. There are strategies that force putting a process to one CPU (even single threaded ones). It's all according to system's needs

You name it - we've got it
Of course I don't say it has to be the case here... but it's possible. I don't know what is the difference between Qt for Linux and Qt for Solaris, but there is probability that they don't differ much. Qt for Linux uses posix threads (if I'm not mistaken) for threading. If I'm not mistaken (again) pthreads don't implement its own, user-configurable scheduling, so the threads shouldn't be limited to one CPU by this library. Furthermore, there is no such thing as 'thread' on Linux platform, as Linux implements threads as processes (threads are created using fork or it's lowlevel variant to be precise). Solaris is a real Unix and implements threads as real threads. When you do fork() on Linux, there is no difference (besides memory mappings) to threads, using threads and forking() on Solaris are two different mechanisms.
However, there is a possibility that Qt handles threads internally and schedules them by itself (which I personally doubt).
You can make an experiment. Make a program (while(1) sleep(1); is ok), run it on Solaris and check if the scheduler assigns it to the same CPU everytime.