Thank you guys for all the interest you have in my little problem (that in fact 
I consider as a Qt bug or design flaw).

Le dimanche 27 janvier 2008, Andreas Pakulat a écrit :
> On 27.01.08 13:36:37, Scott Aron Bloom wrote:
> > > Its not about replacing 1 line of code, its about properly designing
> > > your applications business logic. Moving heavy work into a thread is
> > the
> > > right thing to do (or separate process). QApplication::processEvents
> > is
> > > the ugly hack for those who are not able to use threads properly.
> > > 
> > > Andreas
> > > 
> > But... adding 1 item to a list view.. is not heavy work.. And neigher
> > does it appear that the creation of the complete list of items...
> 
> Right, but thats not what the code actually does and I also suspect that
> adding the item is still done in the main thread.
> 
> > If the code was actually downloading the content of each URL... then I
> > would put it in a thread..
> 
> Thats exactly what the urllib-call (notice the read() at the end of that
> line) does, it opens the url and reads the whole file. 
Yes I download an url page. But this is not what I call a heavy work, this is 
the opposite as the processor
spend most of is time waiting for the web server to answer
> And I suspect 
> that this is the part that got moved into a separate thread. Now maybe
> I've just seen far worse code, but a short QThread::run() that iterates
> over urls, downloads them and then emits a signal for each with whatever
> content is needed doesn't look ugly to me.
This is not so simple because the emit signal must be emitted from an object 
created in a non GUI thread context: it adds an indirection to the stuff. 
Here is the modified program that works (I have changed  
p=urllib.urlopen(next_url).read() for  time.sleep(2) for tests reasons).
Corrections to make it better designed are welcomed, but I am still convinced 
that the original one was better.
(remember that I do not want the QApplication.processEvents in it : 
QListWidget.addItem should work normally without it)
> 
> Andreas
> 



_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to