[PyQt] Custom Widgets and __pyqtSignals__
David Boddie
david at boddie.org.uk
Mon Aug 25 23:26:41 BST 2008
On Mon, 25 Aug 2008 11:58:14 +0200, Marco Fabiani wrote:
> A follow up to my previous email: the code I posted didn't crash because
> it was not doing what it was meant to do. What I am trying to do is to
> subclass QSlider in order to emit a custom signal
> valueDoubleChanged(double) that is just value/100. Here is my code that
> crashes designer, I wonder if you could give me a hand with this:
[...]
> class myDoubleSlider(QSlider):
>
> __pyqtSignals__ = ("valueDoubleChanged(double)",)
>
> def __init__(self,parent = None):
>
> QSlider.__init__(self,parent)
> self.setOrientation(Qt.Horizontal)
> self.connect( self , SIGNAL("valueChanged(int)") ,
> self.setValueDouble)
>
> @pyqtSignature("setValueDouble(double)")
> def setValueDouble(self):
> self.emit(SIGNAL("valueDoubleChanged(double)") ,
> self.value()/100)
I suppose this might be a problem if the value isn't actually a Python
float object, but I failed to get Qt Designer to crash with a custom
widget doing something similar. If I get a chance, I'll wrap up your code
in a Designer plugin and see what happens.
Note to Phil: the PyDemo example contains a __pyqtSignals__ attribute that
isn't actually a tuple.
David
More information about the PyQt
mailing list