Lables erstellen mit For Schleife

Fragen zu Tkinter.
Antworten
AnKo
User
Beiträge: 2
Registriert: Mittwoch 9. September 2015, 09:31

Hallo,

ich habe letzte Woche angefangen mir Python beizubringen. Dementsprechend kämpfe ich noch mit einigen Problemen. Das meiste kann ich mittels google, Tutorials und der Suchfunktion in diesem Forum lösen. Aber mit diesem Problem komme ich nicht weiter:

Ich würde gerne 12 Labels erstellen und dachte mir, dass es sinnvoll wäre anstelle jedes einzelne zu definieren, eine for Schleife zu nutzen.

Meine Grundidee war folgende:

Code: Alles auswählen

RLabels = [R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12]

for n in range(len(RLabels)):
        RLabels[n] = Label(master=window, height=1, width=30, font=("Arial", 10), text = "Ergebnis: ")


Jedoch bekomme ich die Rückmeldung, dass R1 nicht defniert ist. Aber das möchte ich gerade eben mit dieser for-Schleife tun.
Hat jemand eine einfach Lösung / Erklärung?

Vielen Dank!
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Code: Alles auswählen

RLabels = []
 
for n in range(12):
        RLabels.append(Label(master=window, height=1, width=30, font=("Arial", 10), text = "Ergebnis: "))
Zuletzt geändert von Alfons Mittelmeyer am Mittwoch 9. September 2015, 10:58, insgesamt 1-mal geändert.
Benutzeravatar
sparrow
User
Beiträge: 4217
Registriert: Freitag 17. April 2009, 10:28

Die Fehlermeldung tritt ja auch nicht in der Schleife auf, sondern bereits in der ersten Zeile. Es sei denn du definierst R1 irgendwo davor.
In Zeile 1 möchtest du eine Liste erstellen, und da unter anderem etwas mit dem Namen R1 hinein packen. Offensichtlich existiert das aber nicht.
Möchtest du stattdessen eine Zeichenkette in die Liste tun, dann musst du diese auch als Zeichenkette schreiben.
Sollen das tatsächlich Bezeichner für Objekte sein, die in der Schleife erst erstellt werden, musst du bei der Initialisierung der Liste noch gar nichts tun.
AnKo
User
Beiträge: 2
Registriert: Mittwoch 9. September 2015, 09:31

Vielen Dank für die schnelle und hilfreiche Antwort!!!
Antworten