There must be a better way to do this:
def map_leds(self, i):
if i[0] == 1:
self.ledg_1_1.setVisible(True)
self.ledr_1_1.setVisible(False)
else:
self.ledg_1_1.setVisible(False)
self.ledr_1_1.setVisible(True)
###############################################
if int(i[1]) == 1:
self.ledg_1_2.setVisible(True)
self.ledr_1_2.setVisible(False)
else:
self.ledg_1_2.setVisible(False)
self.ledr_1_2.setVisible(True)
###############################################
if int(i[2]) == 1:
self.ledg_1_3.setVisible(True)
self.ledr_1_3.setVisible(False)
else:
self.ledg_1_3.setVisible(False)
self.ledr_1_3.setVisible(True)
###############################################
if int(i[3]) == 1:
self.ledg_2_1.setVisible(True)
self.ledr_2_1.setVisible(False)
else:
self.ledg_2_1.setVisible(False)
self.ledr_2_1.setVisible(True)
###############################################
if int(i[4]) == 1:
self.ledg_2_2.setVisible(True)
self.ledr_2_2.setVisible(False)
else:
self.ledg_2_2.setVisible(False)
self.ledr_2_2.setVisible(True)
###############################################
if int(i[5]) == 1:
self.ledg_2_3.setVisible(True)
self.ledr_2_3.setVisible(False)
else:
self.ledg_2_3.setVisible(False)
self.ledr_2_3.setVisible(True)
###############################################
if int(i[6]) == 1:
self.ledg_3_1.setVisible(True)
self.ledr_3_1.setVisible(False)
else:
self.ledg_3_1.setVisible(False)
self.ledr_3_1.setVisible(True)
###############################################
if int(i[7]) == 1:
self.ledg_3_2.setVisible(True)
self.ledr_3_2.setVisible(False)
else:
self.ledg_3_2.setVisible(False)
self.ledr_3_2.setVisible(True)
###############################################
if int(i[8]) == 1:
self.ledg_3_3.setVisible(True)
self.ledr_3_3.setVisible(False)
else:
self.ledg_3_3.setVisible(False)
self.ledr_3_3.setVisible(True)
I have 9 LEDS, and I my function map_leds is fed an list of len 9 populated with 0s and 1s. If the first value is 1, the first LED should be green (this is a GUI, so an LED is actually a picture and I have to switch between both pictures, hence the "setVisible" function). If the first value is 0, then the LED (that should be displayed) is the red one. And so on for all the other values.
There must be a better way to actually do all this than have a huge if-else statement block, right?