[PyKDE] Auto-connecting Slots
Phil Thompson
phil at riverbankcomputing.co.uk
Fri Jan 27 19:43:31 GMT 2006
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.
See the calculatorform.py example.
Phil
More information about the PyQt
mailing list