[PyKDE] Auto-connecting Slots

Patrick K. O'Brien pobrien at orbtech.com
Fri Jan 27 20:10:19 GMT 2006


Phil Thompson wrote:
> Tonight's PyQt4 snapshot implements Torsten's suggestion for using a decorator 
> to control which signal/slot connections are made when pyuic4 auto-connects.
> 
> The problem is best demonstrated by QSpinBox which emits valueChanged(QString) 
> and valueChanged(int). Defining an auto-connect method 
> on_spinbox_valueChanged means that the method is connected to both signals 
> and so gets invoked twice. Until now the method had to look at the type of 
> the argument and just return if it was the one it didn't want.
> 
> The QtCore.signature() decorator takes a single argument which is, in effect, 
> the C++ signature of the method which tells the auto-connect code which 
> signal to connect. For example...
> 
>     @QtCore.signature("on_spinbox_valueChanged(int)")
>     def on_spinbox_valueChanged(self, value):
>         # value will only ever be an integer.

Any chance we could get an easier syntax, such as:

    @qtsig(int)
    def on_spinbox_valueChanged(self, value):

-- 
Patrick K. O'Brien
Orbtech       http://www.orbtech.com
Schevo        http://www.schevo.org
Louie         http://louie.berlios.de




More information about the PyQt mailing list