Seite 1 von 1
Verkürzen, aber wie?
Verfasst: Freitag 19. Juni 2015, 22:04
von Programmer
Also ich habe ihr ein Code Stück aus meinem Programm:
Code: Alles auswählen
SM1 = M1.get()
SM2 = M2.get()
SM3 = M3.get()
SM4 = M4.get()
SM5 = M5.get()
SM6 = M6.get()
SD1 = D1.get()
SD2 = D2.get()
SD3 = D3.get()
SD4 = D4.get()
SD5 = D5.get()
SD6 = D6.get()
Und ich würde dies weil ich das öfters habe gerne verkürzen , habe schon alles mögliche versucht mit funktionen allerdings hänge ich immer an irgendwas fest.
Dies M1 bis M6 und D1 bis D6 sind alles Entrys von Tkinter.
MFG
Programmer
Re: Verkürzen, aber wie?
Verfasst: Freitag 19. Juni 2015, 22:29
von DasIch
Das Problem hier ist nicht dein Code, der ist einfach nur die logische Folge deiner Datenstrukturen. Letztere sind dein Problem. In diesem Fall solltest du überall da wo du Namen durchnummeriert hast, eine Liste verwenden. Sobald du das getan hast, wirst du sehen wie sich der gezeigte Code ganz natürlich auf zwei Zeilen schrumpft.
Re: Verkürzen, aber wie?
Verfasst: Freitag 19. Juni 2015, 22:45
von Programmer
Code: Alles auswählen
for M in ["M1","M2","M3","M4","M5","M6"]:
Variable = M.get()
s = open("save.ini","w")
s.write(Variable)
s.close()
Ich glaube ich bin zu dumm um das zu verstehen gerade sry.
Es erscheint folgende fehlermeldung:
Code: Alles auswählen
Variable = M.get()
AttributeError: 'str' object has no attribute 'get'
Re: Verkürzen, aber wie?
Verfasst: Freitag 19. Juni 2015, 23:08
von Sirius3
@Programmer: irgendwo definierst ja M1 bis M6 und anstatt dass Du dort 6 verschiedene Variablen nimmst, steckst Du alle 6 Entries in eine Liste.
Re: Verkürzen, aber wie?
Verfasst: Freitag 19. Juni 2015, 23:31
von Programmer
Code: Alles auswählen
Woche = [M1,M2,M3,M4,M5,M6,D1,D2,D3,D4,D5,D6,MI1,MI2,MI3,MI4,MI5,MI6,DO1,DO2,DO3,DO4,DO5,DO6,F1,F2,F3,F4,F5,F6]
s = open("save.ini","w")
s.close()
for T in Woche:
Variable = T.get()
s = open("save.ini","a")
s.write(Variable + "\n")
s.close()
Ich hoffe mal das ihr das so meintet , aufjedenfall funktioniert es so wie ich es will und habe nicht mehr soviel code zeilen stehen , Danke euch

Re: Verkürzen, aber wie?
Verfasst: Freitag 19. Juni 2015, 23:53
von Sirius3
@Programmer: nochmal, Du sollst gleich beim erstellen Deiner Eingabefelder Listen benutzen. Und wie kommt man auf die Idee, für jede einzelne Variable immer wieder die gleiche Datei nochmal zu öffnen?
Re: Verkürzen, aber wie?
Verfasst: Samstag 20. Juni 2015, 00:39
von Programmer
Das mit dem öffnen der Datei habe ich ebend geändert so das er es vor der schleife öffnet und danach schließt , aber ich verstehe nicht was sie meinen damit direkt beim erstellen mit Listen zu arbeiten, haben sie evt. ein beispiel?
Re: Verkürzen, aber wie?
Verfasst: Samstag 20. Juni 2015, 10:14
von /me
Programmer hat geschrieben:Das mit dem öffnen der Datei habe ich ebend geändert so das er es vor der schleife öffnet und danach schließt , aber ich verstehe nicht was sie meinen damit direkt beim erstellen mit Listen zu arbeiten, haben sie evt. ein beispiel?
Irgendwo in deinem Code muss eine Stelle sein in der du M1 (usw.) definierst. Also ein
M1 = ...
Dort an der Stelle musst du den Wert einer Liste zufügen. Und bitte gib der Liste einen sinnvollen Namen.
s,
M1,
SM2 und
T sind in der Regel keine sinnvollen Namen.
Re: Verkürzen, aber wie?
Verfasst: Samstag 20. Juni 2015, 13:02
von Programmer
Okay habs jetzt endlich geschafft , danke euch

Re: Verkürzen, aber wie?
Verfasst: Montag 22. Juni 2015, 08:50
von bfm
hier ein Link, wo die Sache auch noch mal beschrieben wird:
http://stackoverflow.com/questions/1760 ... in-tkinter
Letztendlich werden die Entry-Objekte und die StringVar selbst in eine Liste geschrieben. Über die Liste kann man dann wiederum auf die einzelnen Objekte zugreifen. Listen können nicht nur Werte wie 1, 2, 3 oder A, B, C aufnehmen sondern auch Objekte wie Entrys, Labels usw.