Text, aus eingabefeld speichern

Fragen zu Tkinter.
Antworten
Teabag
User
Beiträge: 81
Registriert: Sonntag 13. Mai 2007, 20:44

Samstag 6. September 2008, 12:37

Hallo Leute,
Ich habe ein Problem,
Ich will ein Eingabefeld machen, und dass wenn man auf den
Button drückt der Inhalt des Eingabefensters in
eine Variable gespeichert wird.

hier mein code:

Code: Alles auswählen

root = Tk()
lab = Label(root,text = "Passwort:")
lab.pack(side = LEFT)

eingabe = Entry(root)
eingabe.pack(side = LEFT)

def senden():
    root.destroy()

but = Button(root, text = "senden", command = senden)
but.pack(side = RIGHT)

root.mainloop()
wie kann ich das machen??
schon mal vielen Dank :-)

liebe grüße

teabag
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Samstag 6. September 2008, 13:22

Zunächst einmal solltest du den Sternchenimport von Tkinter abstellen (import-Zeile fehlt zwar, aber irgendwo dürfte das Sternchen wohl stehen ...).

Entry-Widgets haben eine Methode get(), mit der du den Inhalt abrufen und dann z.B. auch in einer Variablen ablegen kannst.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Freitag 19. September 2008, 18:25

für entry hab ich folgenden guten link endekt der das ausfühlich behandelt
http://effbot.org/tkinterbook/entry.htm
Benutzeravatar
wuf
User
Beiträge: 1420
Registriert: Sonntag 8. Juni 2003, 09:50

Samstag 20. September 2008, 00:08

Hallo Teabag

Hier noch den angepassten Code mit einbezug der von 'numerix' vorgeschlagenen entry.get() Methode:

Code: Alles auswählen

#~~ Abgeleitet von:
#   Verfasser 'Teabag' am Sa Sep 06, 2008 13:37
#   http://www.python-forum.de/topic-15953.html
#   Ergaenzt durch 'wuf' (Skriptname read_entry_text_01.py)

import Tkinter as tk

# def senden():
#     root.destroy()

def main():
    root = tk.Tk()

    def senden():
        my_entry = eingabe.get()
        print "Meine Eingabe:",my_entry
        root.destroy()

    lab = tk.Label(root,text = "Passwort:")
    lab.pack(side = tk.LEFT)

    eingabe = tk.Entry(root)
    eingabe.pack(side = tk.LEFT)

    but = tk.Button(root, text = "senden", command = senden)
    but.pack(side = tk.RIGHT)

    root.mainloop()

if __name__ == "__main__":
    main()
Gruss wuf :wink:
Take it easy Mates!
abgdf

Samstag 20. September 2008, 18:26

... ist doch irgendwie das, was man mit JEDEM Entry-Widget machen will.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Samstag 20. September 2008, 19:52

du kanst das senden mit einem Rückgabewert RETURN my_entry abschlisen
und eine andere klasse ruft dann diese funktion auf
ZB eingabe = class.senden()

damit hat dan deine varible vorort den wert des eingabefeldes
Antworten