[PyQt] problem with passing arguments to a slot

Phil Thompson phil at riverbankcomputing.co.uk
Fri Jan 18 09:36:22 GMT 2008


On Friday 18 January 2008, sschoellhammer wrote:
> Hello everybody,
>
> I really like PyQt but I have one crucial problem. For some reason I cannot
> pass an argument from a signal to my own slot function. If there isn't any
> - like a simple "clicked()" signal it all works ok but once I have anything
> with an argument my own function doesnt even seem to get called :/  Here's
> a little bit of code:
>
> import sys
> from PyQt4.Qt import *
>
> class MainWindow(QMainWindow, Ui_MainWindow):
> 	def __init__(self, parent = None):
> 		QMainWindow.__init__(self, parent)
> 		self.setupUi(self)
>
> 		self.connect(self.btnSetAnimRoot, SIGNAL("clicked()"),self.browse)
> 		self.connect(self.lineEditAnimRoot, SIGNAL("textChanged ( const QString &
> text )"),self.test)
> 		self.connect(self.lineEditAnimRoot, SIGNAL("returnPressed
> ()"),self.test2)
>
> 	#this function doesnt work - it doest even seem to get called
> 	def test(self,text):
> 		print text
>
> 	#if i no parameter is passed there is no problem
> 	def test2(self):
> 		print "pressed"
>
>
> I read this tutorial (http://blog.qgis.org/?q=node/102) and I seem to be
> doing exactly the same but I just cant get this to work.
>
> Please if you know help me out, this is driving me crazy!

Remove the argument name from the textChanged() signature.

Phil


More information about the PyQt mailing list