Command line and GUI tools : need a single threading solution
news at outbacklinux.com
Tue Jan 11 03:25:48 EST 2005
Diez B. Roggisch wrote:
>> I'm thinking it may be possible to modify the command line tools to use
>> threads instead of native python threads. Is this the way to go? Are
>> there other options?
> Why don't you use python threads in qt - I do so and so far it didn't make
> any troubles for me. And I would strongly advise against using qthreads
> with your commandline-tools, as these then would only run on machines
> where pyqt is installed - which opens a small part of "dependency hell"
> for your users.
I have a QThread which polls a queue object via queue.get(). The command
line tools spawn a number of threads each of which writes its output to
this queue using queue.put(). As soon as the gui gets something off the
queue, it creates a QCustomEvent and sets the data property with the data
read from the queue. My application has a customEvent() method which reads
the data item from the customEvent and processes it accordingly.
The odd thing is, I have a non-threaded version of the command line tools
which work 100% with the gui. The multi-threaded version of the command
line tools all work OK at the console - just not with the gui.
I will try your suggestion and replace my QCustomEvent mechanism with a
plain python queue.
More information about the Python-list