Seite 1 von 1

"cavi" aender i in range(1,6)

Verfasst: Montag 5. August 2013, 13:37
von peter99
Hallo,
ich habe ein Programm in CSS (GUI), welches mit einem Pythoncode vernetzt ist. wenn gewisse Werte groesser als andere Werte sind, will ich, dass es zugehoerige widget in CSS rot macht, also etwas wie

Code: Alles auswählen

def alarm(cavlist, cavmaxCSS):
    for i in range(1, number):
        if number >= i and cavlist[i-1] > cavmaxCSS[i-1]:
            display.getWidget("cavi").setPropertyValue("foreground_color",RED)
iwe kann ich dafuer sorgen, dass i im widgetnamen die Werte 1-6 durchlaueft.
ich vergleiche Liste 1 mit Liste 2, jeweils das erste mit dem ersten und so fort.
Danke im Vorraus!
Peter

Re: "cavi" aender i in range(1,6)

Verfasst: Montag 5. August 2013, 13:50
von Sirius3
Hallo Peter,

Deine Widgets heißen cavi1, cavi2, usw.???
Das "number>=i" ist völlig überflüssig, da es ja immer erfüllt ist. Statt über einen Index, iteriert man in Python direkt über die Listelemente; falls doch ein Index nötig ist, gibt es enumerate:

Code: Alles auswählen

def alarm(cavlist, cavmaxCSS):
    for i, (cav_value, cab_max) in enumerate(zip(cavlist,cavmaxCSS),1):
        display.getWidget("cavi%d"%i).setPropertyValue("foreground_color",RED if cav_value>cab_max else GREEN)

Re: "cavi" aender i in range(1,6)

Verfasst: Montag 5. August 2013, 13:52
von peter99
danke! Frage wurde geklaert :)