[PyQt] problem with passing arguments to a slot

Hans-Peter Jansen hpj at urpla.net
Fri Jan 18 10:04:17 GMT 2008


Am Freitag, 18. Januar 2008 schrieb sschoellhammer:
> 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)

It's as simple as omitting "text" here. SIGNAL's argument is the C++ 
signature without the variable names.. See:
 
http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html#pyqt-signals-and-qt-signals

> 		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!
>
> Thanks in advance,
> seb


More information about the PyQt mailing list