Friends!
I have a function that sets up QPushButton.clicked.connects() that iterates through a list of QPushButton widgets. The issue I am having is that it iterates through correctly returning the object, name, widget during the iteration but the signal connected always connects to the last item when it finishes.
def handle_buttons(self):
    self.buttons = [self.window.kettle_ON,
                    self.window.kettle_OFF,
                    self.window.hot_liquid_ON,
                    self.window.hot_liquid_OFF,
                    self.window.chill_ON,
                    self.window.chill_OFF,
                    self.window.pump_ON,
                    self.window.pump_OFF,
                    self.window.liquid_pump_ON,
                    self.window.liquid_pump_OFF,]
    # Attempt #1
    for each_button, widget in enumerate(self.buttons):
         tag_name = str(widget.objectName())
         print(each_button, tag_name, type(widget))
         widget.clicked.connect(lambda checked: self.BUTTON_TOGGLE(str(tag_name)))
    # Attempt #2
    for each in range(len(self.buttons)):
        self.buttons[each].clicked.connect(lambda checked: self.BUTTON_TOGGLE(str(self.buttons[each].objectName())))
This is my output; I clicked all the buttons and my output for Attempt #1 and #2 both have the same output:
 0 kettle_ON <class 'PyQt5.QtWidgets.QPushButton'>
 1 kettle_OFF <class 'PyQt5.QtWidgets.QPushButton'>
 2 hot_liquid_ON <class 'PyQt5.QtWidgets.QPushButton'>
 3 hot_liquid_OFF <class 'PyQt5.QtWidgets.QPushButton'>
 4 chill_ON <class 'PyQt5.QtWidgets.QPushButton'>
 5 chill_OFF <class 'PyQt5.QtWidgets.QPushButton'>
 6 pump_ON <class 'PyQt5.QtWidgets.QPushButton'>
 7 pump_OFF <class 'PyQt5.QtWidgets.QPushButton'>
 8 liquid_pump_ON <class 'PyQt5.QtWidgets.QPushButton'>
 9 liquid_pump_OFF <class 'PyQt5.QtWidgets.QPushButton'>
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
 liquid_pump_OFF
NOW, if I do it standalone like this...it works.
 self.buttons[0].clicked.connect(lambda checked: self.BUTTON_TOGGLE(str(self.buttons[0].objectName())))
 self.buttons[1].clicked.connect(lambda checked: self.BUTTON_TOGGLE(str(self.buttons[0].objectName())))
 self.buttons[2].clicked.connect(lambda checked: self.BUTTON_TOGGLE(str(self.buttons[0].objectName())))
 .
 .
 .
Any insight would be greatly appreciated!
