<span class="gmail_quote"><br></span>Date: Sun, 21 Jan 2007 19:36:48 +0100<br>From: David Boddie &lt;<a href="mailto:david@boddie.org.uk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">david@boddie.org.uk
</a>&gt;<br>Subject: Re: [PyKDE] callback not being called
<br>To: <a href="mailto:pykde@mats.imk.fraunhofer.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">pykde@mats.imk.fraunhofer.de</a><br>Message-ID: &lt;<a href="mailto:200701211936.48640.david@boddie.org.uk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

200701211936.48640.david@boddie.org.uk</a>&gt;<br>Content-Type: text/plain; &nbsp;charset=&quot;iso-8859-1&quot;<br><br>On Sunday 21 January 2007 09:05:40 -0800, Tony Cappellini wrote:<br><br>&gt;&gt;Do you mean that you want to call normal methods in Python classes and not
<br>j&gt;&gt;ust those supplied by their Qt base classes?<br>Yes<br><br>&gt;&gt;You should be able to use the same syntax as that used in the Qt documentation, but there&#39;s also a PyQt-specific shortcut for slots that you can use.
<br>Well, the QT docs are all in C++, and often there are some differences for python.<br>I&#39;ve read the pyQT docs here, but it&#39;s very terse, and doesn&#39;t provide examples.<br><a href="http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html#pyqt-slots-and-qt-slots" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html#pyqt-slots-and-qt-slots</a><br>(this is the only python-specific help I can find. It&#39;s only one page)<br><br><h2><a href="http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html#id14" name="11047aff5f293497_connecting-signals-and-slots" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

3.5&nbsp;&nbsp;&nbsp;Connecting Signals and Slots</a></h2>
<p>Connections between signals and slots (and other signals) are made using the
<tt><span>QtCore.QObject.connect()</span></tt> method.  For example:</p>
<pre>QtCore.QObject.connect(a, QtCore.SIGNAL(&quot;QtSig()&quot;), pyFunction)<br>QtCore.QObject.connect(a, QtCore.SIGNAL(&quot;QtSig()&quot;), pyClass.pyMethod)<br>QtCore.QObject.connect(a, QtCore.SIGNAL<br>(&quot;QtSig()&quot;), b, 
QtCore.SLOT(&quot;QtSlot()&quot;))<br>QtCore.QObject.connect(a, QtCore.SIGNAL(&quot;PySig()&quot;), b, QtCore.SLOT(&quot;QtSlot()&quot;))<br>QtCore.QObject.connect(a, QtCore.SIGNAL(&quot;PySig&quot;), pyFunction)<br><br></pre>
<br>&nbsp; def updateTextBox(self):<br> &nbsp; &nbsp; &nbsp; &nbsp;# this function should be called, when the button is pressed<br>&nbsp;   self.patchBrowser.setPlainText(self.tr(&quot;Callback was called&quot;))<br><br>&gt;&gt;However, your updateTextBox() slot is just a normal Python method, so you can just pass a reference to it:
<br><br> &nbsp; &nbsp; &nbsp;&nbsp; &gt;&gt;self.connect(self.patchNames, QtCore.SIGNAL(&quot;activated()&quot;),&nbsp; self.updateTextBox)<br>I&#39;ve tried this,&nbsp; my function still isn&#39;t being called<br><br>&gt;&gt;For slots defined by the C++ base class, you can use SLOT() to specify them in the connect() call; 
<br>&gt;&gt;for example, the following connection would cause the dialog to be hidden when a patchNames combobox entry is activated:<br><br> &nbsp; &nbsp; &nbsp;&nbsp; &gt;&gt;self.connect(self.patchNames, QtCore.SIGNAL(&quot;activated()&quot;), self, 
QtCore.SLOT(&quot;hide()&quot;))<br>I&#39;ve tried this too, it doesn&#39;t call my function either<br><br><br>