[PyQt] Is the result of SIGNAL() a constant?

Aaron Digulla digulla at hepe.com
Wed Jan 9 09:41:37 GMT 2008


Quoting Phil Thompson <phil at riverbankcomputing.co.uk>:

>> From the documentation, I got the impression that the result of SIGNAL()
>>
>> is more or less a constant. Is this code valid?
>>
>>    signal = SIGNAL()
>>    self.connect(w1, signal, self.w1Clicked)
>>    self.connect(w2, signal, self.w2Clicked)
>
> Yes - given a correct call to SIGNAL().
>
>> ie. can I predefine all signals in my app, save them somewhere (to save
>> typos) and avoid the additional SIGNAL() calls? Or do I have to call
>> SIGNAL() every time?
>
> type(SIGNAL('')) would show that it is just a string.

That confuses me a bit because when I try to pass a string as the  
second argument to connect, I get "argument 2 has a wrong type" :)

But anyway: How much work would it be to have SIP generate constants  
for all SIGNAL's in a class? So I could say:

     self.connect(w1, w1.SOME_SIGNAL, ...)

Pro: Doesn't break old code, API, etc. No more typos (or python will  
warn about a missing attribute) and PyDev could offer auto-completion  
for signals, too!

Regards,

-- 
Aaron "Optimizer" Digulla a.k.a. Philmann Dark
"It's not the universe that's limited, it's our imagination.
Follow me and I'll show you something beyond the limits."
http://www.pdark.de/



More information about the PyQt mailing list