Hi guys, I'm using a QTreeWidget for this particular tool, and a custom widget which displays a progress bar type image. Some code:

def paintEvent(self,e):
p = QtGui.QPainter(self)
       rect= e.rect()
       total_frm = self.__profile.frameCount()
       ratio = rect.width() / float(total_frm)
       h_totals = self.__profile.getFrameStatusTotals()
# take this out and works good, but doesn't look as good.
       rect.setY(rect.y() + 2)
       rect.setHeight(rect.height() - 2)
       rect.setY(rect.y() + 1)
       rect.setHeight(rect.height() - 1)
for type in FSTATUS:
           length = int(math.ceil( ratio * h_totals[type]))
           if length > 0:
               rect.setWidth(length)
               p.fillRect(rect,FCOLORS[type])
               rect.setX(rect.x() + length)


Basically, what it does is break down some data and show a type of progress bar with sections colored differently. My problem is that if you scroll the image of the bar off the screen and back on, it doesn't redraw properly. Depending on the speed you scroll, there is different behavior. Too fast and it leaves out horizontal lines, too slow and it leaves artifacts.

If I take out the part where I resize the rect so it does't fill the whole cell, its works good. I also tried redrawing the base color under the cell before redrawing the bar.

-Matt

_______________________________________________
PyKDE mailing list    [email protected]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to