[Python-de] Re: Tkinter entry widget Frage (Keule)

Heiko.Feldmann at sinnerschrader.de Heiko.Feldmann at sinnerschrader.de
Tue Mar 5 19:12:17 EST 2002


> jetzt rufe ich obige variab() Funktion von einem anderen Menü auf und 
möchte die obigen 6 Werte für fields setzen.
> ich gebe zum test mal die Zahlen von 2-7 ein und lasse sie über die 
print Anweisung wieder ausgeben, hier die Ausgabe:

> C:\Arbeit_Diplomarbeit\__Benutzerschnittstelle>python tem.py
> Input => "2"
> Input => "3"
> Input => "4"
> Input => "5"
> Input => "6"
> Input => "7"
> entries= [<Tkinter.Entry instance at 0x008CCC20>, <Tkinter.Entry 
instance at 0x0
> 08CDE28>, <Tkinter.Entry instance at 0x008CE528>, <Tkinter.Entry instance 
at 0x0
> 08CECA0>, <Tkinter.Entry instance at 0x008CF418>, <Tkinter.Entry 
instance at 0x0
> 08CFC58>]
> entries[1]= .9229696.9231912


> Zu sehen ist, dass alles möglich zurückgegeben wird, nur nicht meine 
eingegebenen Zahlen 2-7.
> Hat jemand vielleicht eine Idee für mich ?

Hallo,

Dein Problem ist, dass Du zur Abfrage des Wertes eines Entry-Widgets eine 
StringVar benötigts.

So kannst Du die Werte auslesen:

from Tkinter import *
fields = 
'Minimalwert','Maximalwert','Pre-Kondition','Post-Kondition','Zeile','Spalte'
entries = {}

def fetch():
    for field in fields:
        print 'Input %s => "%s"' % (field,entries[field].get())         # 
get text

def makeform(root, fields):
    for field in fields:
        textStr = StringVar()
        textStr.set(field)
        row = Frame(root)                           # make a new row
        lab = Label(row, width=15, text=field)       # add label, entry
        ent = Entry(row,text=textStr)
        row.pack(side=TOP, fill=X)                  # pack row on top
        lab.pack(side=LEFT)
        ent.pack(side=RIGHT, expand=YES, fill=X)    # grow horizontal
        entries[field] = textStr

if __name__ == '__main__':
    root = Tk()
    root.title('Variableneingabe')
    makeform(root, fields)
    Button(root, text='nächste Variable',command=fetch).pack(side=LEFT)
    root.mainloop()

Ergebnis:

Input Minimalwert => "2"
Input Maximalwert => "3"
Input Pre-Kondition => "4"
Input Post-Kondition => "5"
Input Zeile => "6"
Input Spalte => "7"

Du solltest vielleicht einmal die Tkinter-Docu lesen.

Heiko Feldmann
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://starship.python.net/pipermail/python-de/attachments/20020305/a1035b1c/attachment.htm


More information about the Python-de mailing list