[PyQt] QGraphicsScene issue

Jason H scorp1us at yahoo.com
Sat Aug 11 02:20:47 BST 2007


I started using Qt 4.3.1 and PyQt 4.3. When I added the QGraphicsScene, I got the error:
QObject::startTimer: timers cannot be started from another thread
With out me actually using any timers.

Then I wrote the script below (Change sups.jpg) to another file you have on your system.
Everytime it renders the scene, the 
QObject::startTimer: timers cannot be started from another thread
message appears, and floods the console.

After a few moments of running, python crashes It typically rotates 3 or 4 times before crashing.

I am wondering what I am doing wrong?

TIA!





------------------------
import sys
from PyQt4.Qt import *

class TransformThread(QThread):
        def    __init__(self, item, *args):
                QThread.__init__(self, *args)
                self.item=item
                self.counter=0
                
        def run(self):
                while (1):
                    self.counter+=.1
                    self.item.setTransform(QTransform().rotate(self.counter % 360))
                    QApplication.processEvents()
                    #self.msleep(1)

class MainWindow(QMainWindow):
    def __init__(self, *argv):
            QMainWindow.__init__(self, *argv)        
            self.scene=QGraphicsScene()
            self.gv=QGraphicsView(self.scene)
            self.setCentralWidget(self.gv)
            pixmap=QPixmap('sups.jpg')
            self.items=[QGraphicsPixmapItem(pixmap)]
            self.threads=[]
            for item in self.items:
                self.scene.addItem(item)
                self.threads.append(TransformThread(item))
                self.threads[-1].start()                


if __name__=='__main__':
    a=QApplication(sys.argv)
    w=MainWindow()
    w.show()
    a.exec_()

    




       
____________________________________________________________________________________
Choose the right car based on your needs.  Check out Yahoo! Autos new Car Finder tool.
http://autos.yahoo.com/carfinder/



More information about the PyQt mailing list