[PyKDE] Signal + Slots Problem

Stuart Bronk s.bronk at exeter.ac.uk
Wed Mar 5 21:20:01 GMT 2003


Thanks for the suggestion, unfortunately it is now returning a different
error.

My widget code is now like this:
	self.Figure = Figure.Figure() # instantiate Figure
      self.connect(self.Figure, PYSIGNAL("sigloadQ"), self.loadQ)

Figure class is this:
	def loadQ():
        self.emit(PYSIGNAL("sigloadQ"), ())

The error is:
	  File "GLWidget.py", line 27, in __init__
    		self.connect(self.Figure, PYSIGNAL("sigloadQ"),
self.loadQ)
	  AttributeError: sipThis

sip is the underlying system I believe so I have no idea where this
comes from.

Any suggestion will be greatly appreciated again, thanks
Stuart Bronk

-----Original Message-----
From: Phil Thompson [mailto:phil at river-bank.demon.co.uk] 
Sent: 05 March 2003 6:26 PM
To: Stuart Bronk; pykde at mats.gmd.de
Subject: Re: [PyKDE] Signal + Slots Problem

On Wednesday 05 March 2003 5:28 pm, Stuart Bronk wrote:
> Hi,
>
> I currently trying to set up signals and slots in my application I
> understand the principals and have read many examples but I am unable
to
> get it working on my own could someone possibly help me out :) as this
> is only a basic test I am hoping to pass objects later but that is
> another step :)
>
> I have a Widget and a class called Figure I am attempting to connect
the
> method Figure.loadQ with the Widgets loadQ method but I cannot seem to
> get it to work
>
> This is the code I am attempting to use in my widget:
>
> def __init__(self,parent,name=None):
>     	QGLWidget.__init__(self,parent,name)
> 	self.Figure = Figure.Figure() # instantiate Figure
>       self.connect(self.Figure, SIGNAL("loadQ()"), self.loadQ())
>
> In the Figure class my loadQ method is:
>
> def loadQ():
>       QObject.emit("loadQ()")
>
> The interpreter is giving me the following error
> 	  File "GLWidget.py", line 27, in __init__
>     	     self.connect(self.Figure, SIGNAL("loadQ()"), self.loadQ())
> 	  TypeError: Argument 1 of QObject.connect() has an invalid type
>
> Any help would be much appreciated :)

SIGNAL() is for Qt signals but you are defining a new Python signal.

Try PYSIGNAL() instead.

Phil




More information about the PyQt mailing list