[PyQt] Problem sometimes connecting signal/slot in a loop
Kálmán Viktor
viktorvector at gmail.com
Thu May 16 23:51:55 BST 2019
It looks like you are running into this issue:
https://docs.python.org/2/faq/programming.html#why-do-lambdas-defined-in-a-loop-with-different-values-all-return-the-same-result
Luna Tuna <fruitfulapproach at gmail.com> ezt írta (időpont: 2019. máj. 16.,
Cs, 23:43):
> Hi,
>
> Codes:
>
> def setup(self):
> for color in self._colors:
> attr = color + ' color button'
> attr = attr.replace(' ', '_')
> button = getattr(self, attr)
> self._buttons[color] = button
> button.clicked.connect(lambda: self.show_color_dialog(color))
>
> When you do something like this, then all connections are made to the last
> color in the list,
> so clicking on "pen" color will always change "edit locked label" color
> (the last in list).
>
> I've fixed it before by making the connection in a dummy function. But is
> there a better way to resolve this?
>
> Thanks.
>
> -Fruitful Approach
> _______________________________________________
> PyQt mailing list PyQt at riverbankcomputing.com
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20190517/bc42c68c/attachment.html>
More information about the PyQt
mailing list