ich habe eine Frage bezüglich dem Einsatz von Buttons. Aktuell erstelle ich Skript zur Ansteuerung einer Pumpe mit 4 Kanälen, jeder Kanal soll über eine Button an und aus geschaltet werden.
Der Einfachheit halber habe ich jedem Button eine eigene DEF zugewiesen. Sozusagen 4 mal die Gleiche...wo sich lediglich ein Zahlenwert zwischen 1-4 unterscheidet.
Ich würde gern das alle Buttons mit der gleichen DEF verbunden sind und entsprechend zusetzlich einen INT Wert von 1-4 übertragen, ist das Möglich?
Daher meine Überlegung, wo jetzt bei dem entsprechenden CH* eine Zahl steht, dann einfach die Variable übertragen, die repräsentativ für 1-4 steht.
Das würde mir im gesamten Code sehr viele Zeilen sparen, da ich sonst immer alles 4-fach machen muss.
Danke für eure Hilfe!!!
Aktuell wird es so gelöst:
Code: Alles auswählen
# Buttons Pumpenkanäle ein / aus
self.ui.button_ch1.clicked.connect(self.CH1_on_off)
self.ui.button_ch2.clicked.connect(self.CH2_on_off)
self.ui.button_ch3.clicked.connect(self.CH3_on_off)
self.ui.button_ch4.clicked.connect(self.CH4_on_off)
def CH1_on_off(self):
if self.status_ch1 == False:
self.ser.write("1H\r\n".encode())
antwort_ch1 = self.ser.read().decode()
self.label_ch1.setText("running")
print("CH1 Abfrage Zustand: "+ antwort_ch1)
self.status_ch1 = True
elif self.status_ch1 == True:
self.ser.write("1I\r\n".encode())
antwort_ch1 = self.ser.read().decode()
self.label_ch1.setText("stop")
print("CH1 Abfrage Zustand: "+ antwort_ch1)
self.status_ch1 = False
def CH2_on_off(self):
if self.status_ch2 == False:
self.ser.write("2H\r\n".encode())
self.label_ch2.setText("running")
antwort_ch2 = self.ser.read().decode()
print("CH2 Abfrage Zustand: "+ antwort_ch2)
self.status_ch2 = True
elif self.status_ch2 == True:
self.ser.write("2I\r\n".encode())
self.label_ch2.setText("stop")
antwort_ch2 = self.ser.read().decode()
print("CH2 Abfrage Zustand: "+ antwort_ch2)
self.status_ch2 = False
def CH3_on_off(self):
if self.status_ch3 == False:
self.ser.write("3H\r\n".encode())
self.label_ch3.setText("running")
antwort_ch3 = self.ser.read().decode()
print("CH3 Abfrage Zustand: "+ antwort_ch3)
self.status_ch3 = True
elif self.status_ch3 == True:
self.ser.write("3I\r\n".encode())
self.label_ch3.setText("stop")
antwort_ch3 = self.ser.read().decode()
print("CH3 Abfrage Zustand: "+ antwort_ch3)
self.status_ch3 = False
def CH4_on_off(self):
if self.status_ch4 == False:
self.ser.write("4H\r\n".encode())
self.label_ch4.setText("running")
antwort_ch4 = self.ser.read().decode()
print("CH4 Abfrage Zustand: "+ antwort_ch4)
self.status_ch4 = True
elif self.status_ch4 == True:
self.ser.write("4I\r\n".encode())
self.label_ch4.setText("stop")
antwort_ch4 = self.ser.read().decode()
print("CH4 Abfrage Zustand: "+ antwort_ch4)
self.status_ch4 = False