Thanks for the speedy responses! I'm now trying to create a non-paintEvent function that calls an update if necessary. But now when i do
self.connect(self.timer, QtCore.SIGNAL('timeout()'), self.pollJoysticks()) i get an error: Argument 3 (i.e. the pyFunction call) is of invalid type. but here ( http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html#signal-and-slot-support) It says i should be able to use the form QtCore.QObject.connect(a, QtCore.SIGNAL("QtSig()"), pyFunction) I know that the timeout signal and my polling function work because they worked fine before, all i did was rename paintEvent to pollJoysticks and add a call to the proper paintEvent, and replace self.connect(self.timer, QtCore.SIGNAL('timeout()'), self, QtCore.SLOT ('update()') with what i put above. if i use self.connect(self.timer, QtCore.SIGNAL('timeout()'), self, QtCore.SLOT ('pollJoysticks()')) polljoysticks doesn't get called at all. Is there something special i should put in the pollJoysticks method to make it a Slot? thanks jon On Wed, Mar 5, 2008 at 11:58 PM, Jon Chambers <[EMAIL PROTECTED]> wrote: > Hi, > I'm trying to write a program that creates an onscreen keyboard that uses > an 2-analogue stick joypad for input. I'm having issues becuase the joystick > needs to be polled regularly. I'm using a QTimer to call a paintEvent > update() that polls the joystick in the main class (Keyboard). However > there's some other drawing i want to do when the joystick is polled. However > the drawing is supposed to be done by a different class with its own > graphics etc (called Ring), and i found the only way that seemed to work was > to put the drawing i want to do in the paintEvent of that class and both > seem to get called. But this seems kinda weird, and for some reason if i > simply called the drawing to be done by Ring as a method of the Ring object > in the paintEvent of Keyboard it doesn't work. > I'm sorry if there's a bit confusing, i'm very new to programming and QT > and also asking questions on mailing lists. > > Basically doing > > Class keyboard() > ... > self.timer.start(50) > self.connect(self.timer, QtCore.SIGNAL('timeout()'), self, QtCore.SLOT > ('update()')) > ... > def paintEvent() > ...poll the joystick > > Class Ring() > ... > def paintEvent() > ... do the ring drawing > > works, but doing > > Class keyboard() > ... > self.timer.start(50) > self.connect(self.timer, QtCore.SIGNAL('timeout()'), self, QtCore.SLOT > ('update()')) > ... > def paintEvent() > ...poll the joystick > ...ring.drawstuff() > > Class Ring() > ... > def drawstuff() > ... do the ring drawing > > Just lands me with a blank window. > Hope someone can help explain this. > thanks >
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt