<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Is there some reason new-style connection from any signal to
QSignalMapper.map do not appear to work?<br>
<br>
Using old-style self.connect works, i.e.:<br>
<code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.connect(self.b1, SIGNAL("clicked()"),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper, SLOT("map()"))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.connect(self.b2, SIGNAL("clicked()"),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper, SLOT("map()"))<br>
</code><br>
But using new-style self.&lt;signal&gt;.connect does not:<br>
<br>
<code></code><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.b1.clicked.connect(self.mapper.map)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.b2.clicked.connect(self.mapper.map)<br>
</code><br>
Here's a complete example:<code><br>
=========================================<br>
from PyQt4.QtCore import *<br>
from PyQt4.QtGui import *<br>
<br>
app = QApplication([])<br>
<br>
class Test(QWidget):<br>
&nbsp;&nbsp;&nbsp; def __init__(self, parent=None):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(Test, self).__init__(parent)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout = QVBoxLayout()<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.b1 = QPushButton("B1")<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.b2 = QPushButton("B2")<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addWidget(self.b1)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layout.addWidget(self.b2)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.setLayout(layout)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper = QSignalMapper(self)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper.setMapping(self.b1, "B1")<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper.setMapping(self.b2, "B2")<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.b1.clicked.connect(self.mapper.map)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.b2.clicked.connect(self.mapper.map)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.connect(self.b1, SIGNAL("clicked()"),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper, SLOT("map()"))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #self.connect(self.b2, SIGNAL("clicked()"),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper, SLOT("map()"))<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.mapper.mapped[QString].connect(self.sayIt)<br>
<br>
&nbsp;&nbsp;&nbsp; @pyqtSlot(QString)<br>
&nbsp;&nbsp;&nbsp; def sayIt(self, name):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print name<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
<br>
t = Test()<br>
<br>
t.show()<br>
<br>
app.exec_()<br>
</code><code>=========================================</code><br>
<br>
cheers, <br>
-Mark<br>
<pre class="moz-signature" cols="72">-- 
Mark Visser, Software Director
Lumi&egrave;re VFX
Email: <a class="moz-txt-link-abbreviated" href="mailto:markv@lumierevfx.com">markv@lumierevfx.com</a>
Phone: +1-514-316-1080 x3030
</pre>
</body>
</html>