Seite 1 von 1

entry.get() iterieren

Verfasst: Mittwoch 16. März 2011, 20:06
von pythonstarter
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

Re: entry.get() iterieren

Verfasst: Mittwoch 16. März 2011, 20:53
von Hyperion
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?

Re: entry.get() iterieren

Verfasst: Mittwoch 16. März 2011, 23:24
von pythonstarter
: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.

Re: entry.get() iterieren

Verfasst: Donnerstag 17. März 2011, 00:08
von 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.

Re: entry.get() iterieren

Verfasst: Donnerstag 17. März 2011, 03:42
von pythonstarter
vielen Dank, so geht's