entry.get() iterieren

Fragen zu Tkinter.
Antworten
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

Hi ich steh mal wieder auf'm Schlauch.

habe mit einer for-schleife Entry-Felder eingerichtet, die ich auch gerne wieder über eine for-schleife mit jeweiiligem Index mit der .get()-Methode auslesen würde.
... aber ich komm nicht drauf :(
sicher gibt's hier wieder kompetente helfer :)
danke
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

pythonstarter hat geschrieben:Hi ich steh mal wieder auf'm Schlauch.
Also wir hier auch, denn...
pythonstarter hat geschrieben: habe mit einer for-schleife Entry-Felder eingerichtet, die ich auch gerne wieder über eine for-schleife mit jeweiiligem Index mit der .get()-Methode auslesen würde.
... das versteht ja kein Mensch! ;-) Zeig doch mal ein kurzes Snippet, was Du mit "einrichten" meinst. Und was fehlt Dir denn genau? Was willst Du erreichen, kannst es aber nicht? Oder wo hättest Du gerne eine besondere API?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

:shock: o.k (war grade erst wach geworden als ich das verzapft hab.
Das script könnte so aussehen:

Code: Alles auswählen

import tkinter as tk

liste = []
def lesen():    
    for i in range(0,len(Text)):
        erg = entry.get()
        liste.append(erg)
        print (liste)

main = tk.Tk()
Text = ("a", "b", "c", "d", "e")

for y in range(0, len(Text)):
    entry = tk.Entry(main)
    entry.grid()


button = tk.Button(main, text = "lesen", command = lesen)
button.grid()

main.mainloop()
So, und jetzt würde ich gerne mit einer for-Schleife die Werte, die ich in die Entrys eingebe wieder einlesen und in einer Liste speichern. Aber meine Funktion lesen liest immer nur den letzen Eintrag ein.
BlackJack

@pythonstarter: Du merkst Dir die `Entry`-Exemplare ja nirgends, also wieso sollte bei dem Quelltext auch etwas anderes abgefragt werden als das letzte `Entry`, das an den modulglobalen Namen `entry` gebunden wurde? Steck die `Entry`-Exemplare in eine Liste, dann kannst Du sie später auch alle abfragen.

Lass das mit der GUI-Programmierung aber besser erst einmal ruhen und arbeite ein Python-Tutorial durch um die Grundlagen zu lernen. Mindestens so lange bis Du nicht mehr so etwas wie ``range(0, len(obj))`` schreibst, denn das braucht man nur *ganz* selten in Python. Man kann über die Elemente von Listen *direkt* iterieren. Nur den Index braucht man fast nie. Manchmal braucht man ihn zusätzlich zum zugehörigen Element -- dafür gibt es dann die `enumerate()`-Funktion. Und für GUI-Programmierung sollte man eigentlich schon fit in objektorientierter Programmierung sein.
pythonstarter
User
Beiträge: 53
Registriert: Donnerstag 15. April 2010, 20:34

vielen Dank, so geht's
Antworten