On Tuesday 18 February 2003 8:13 am, Vio wrote: > Greetings, > Newbie hits wall while dipping toe in QCanvas. > Would someone be kind enough to tell > me why I get a segfault while trying to "show()" a sprite? > > > my entire code: > > # START OF CODE -------------------------------------------- > # > # Testing QCanvas > # > > import sys > from qt import * > from qtcanvas import * > TRUE = 1 > FALSE = 0 > > class MY(QCanvas): > > def __init__(self,h = 1000, w=1000): > QCanvas.__init__(self,h,w) > self.view = QCanvasView(self) > > # testing text > self.item = QCanvasText('Testosterone',QFont (),self) > self.item.setX(50) > self.item.setY(50) > self.item.show() > > # testing sprite > spix = QCanvasPixmapArray() > spix.setImage(0,QCanvasPixmap("test.png")) > sprite = QCanvasSprite(spix, self) > sprite.move(100, 100, 0) > sprite.show() #<-- gives Segmentation fault > # error message: > #QPixmap::operator=: Cannot assign to pixmap during painting > > # Note: if commenting out the "sprite.show()" line, the QCanvasText > # shows up as expected. > > > # show items on screen > self.view.show() > self.update() > > > if __name__ == "__main__": > a = QApplication(sys.argv) > QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()")) > w = MY() > a.exec_loop() > > # END OF CODE --------------------------------------------
I haven't got time to investigate this properly at the moment, but the canvas.py example script seems to have a similar problem (if you start a sprite). Both segfault in the QCanvasSprite::topEdge() method in Qt itself, although the backtrace. The C++ version of canvas.py doesn't have the problem, so the most likely cause is a PyQt bug. Phil _______________________________________________ PyKDE mailing list [EMAIL PROTECTED] http://mats.gmd.de/mailman/listinfo/pykde