<html><body><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; color: #000000"><div>Hi Luna Tuna,<br></div><div><br data-mce-bogus="1"></div><div>I had the exact same problem two years ago. I put a question on StackOverflow, and got a clear answer. You can check it out here:<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>https://stackoverflow.com/questions/37319967/pyqt4-signal-slot-mechanism-doesnt-work-correctly-for-list-of-buttons<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>The question is for PyQt4, but also applies to the most recent PyQt5.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>I hope this helps ^_^<br data-mce-bogus="1"></div><div>Kind greetings,<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Kristof Mulier<br data-mce-bogus="1"></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>Van: </b>"Kálmán Viktor" <viktorvector@gmail.com><br><b>Cc: </b>"pyqt" <pyqt@riverbankcomputing.com><br><b>Verzonden: </b>Vrijdag 17 mei 2019 00:51:55<br><b>Onderwerp: </b>Re: [PyQt] Problem sometimes connecting signal/slot in a loop<br></div><br><div data-marker="__QUOTED_TEXT__"><div dir="ltr">It looks like you are running into this issue: 

<a href="https://docs.python.org/2/faq/programming.html#why-do-lambdas-defined-in-a-loop-with-different-values-all-return-the-same-result" target="_blank">https://docs.python.org/2/faq/programming.html#why-do-lambdas-defined-in-a-loop-with-different-values-all-return-the-same-result</a><br data-mce-bogus="1"></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Luna Tuna <<a href="mailto:fruitfulapproach@gmail.com" target="_blank">fruitfulapproach@gmail.com</a>> ezt írta (időpont: 2019. máj. 16., Cs, 23:43):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi,<br><div>Codes:</div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div>    def setup(self):</div></div></div><div><div>        for color in self._colors:</div></div><div><div>            attr = color + ' color button'</div></div><div><div>            attr = attr.replace(' ', '_')</div></div><div><div>            button = getattr(self, attr)</div></div><div><div>            self._buttons[color] = button    </div></div><div><div>            button.clicked.connect(lambda: self.show_color_dialog(color))</div></div><br></blockquote>When you do something like this, then all connections are made to the last color in the list,<div>so clicking on "pen" color will always change "edit locked label" color (the last in list).</div><div><br>I've fixed it before by making the connection in a dummy function.  But is there a better way to resolve this?</div><br><div>Thanks.</div><br><div>-Fruitful Approach</div></div>
_______________________________________________<br>
PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com" target="_blank">PyQt@riverbankcomputing.com</a><br>
<a href="https://www.riverbankcomputing.com/mailman/listinfo/pyqt" rel="noreferrer" target="_blank">https://www.riverbankcomputing.com/mailman/listinfo/pyqt</a><br>
</blockquote></div>
<br>_______________________________________________<br>PyQt mailing list    PyQt@riverbankcomputing.com<br>https://www.riverbankcomputing.com/mailman/listinfo/pyqt<br></div></div></body></html>