[PyKDE] Auto-connecting Slots
phil at riverbankcomputing.co.uk
Fri Jan 27 22:46:29 GMT 2006
On Friday 27 January 2006 8:10 pm, Patrick K. O'Brien wrote:
> 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:
> def on_spinbox_valueChanged(self, value):
I want to keep it generic in case some other uses pop up.
At the very least your example would have to be @QtCore.qtsig("int")
More information about the PyQt