Andreas Pakulat wrote:
On 11.10.06 13:10:34, Matt Chambers wrote:
  
Andreas Pakulat wrote:
    
On 10.10.06 21:19:59, M.Chambers wrote:
 
      
How can I disable some that I'm not using?  Seems like a waste to call
data() that many times.  I'm using the model view stuff and its very
slow compared to Qt3.
   
        
You can't or at least you can't with the built-in Q*Views. You'd have to
write your own view class that only asks for the roles you need.

Also for speeding things up, try to check the role parameter as one of
the first things and return an empty QVariant() if it is uninteresting.

If that's still to slow get a profiling tool and check where the time is
really spend.

Andreas

 
      
I ended up making a single QVariant and return that over and over again, helped 
to speed it up:
    

I'm curious as to what you had before? That's what you posted is exactly
what I would've done in the first place...

Andreas

  

Many examples show data() actually doing stuff like

if role != QtCore.Qt.DisplayRole:
    return QtCore.QVariant()

I was able to eek out quite a bit more speed by creating a global instance of QVariant and returning the same one over and over again, instead of
creating a new object every time data is called, which can be hundreds of times in just a few seconds.

so I do:
if role != QtCore.Qt.DisplayRole:
    return EMPTY_QVARIANT


My cpu fan still comes on if I use the scroll bar but its not as bad.

--
Matt Chambers <[EMAIL PROTECTED]>
Sony Pictures Imageworks

_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to