Seite 1 von 1

get entry?

Verfasst: Freitag 28. Januar 2005, 15:08
von Psus82
Wie mache ich das das ich ein Entry in eine Variable speichere und das Fenster sich dann schließt?

Jemand ne Idee?
Gruß
Psus82

Verfasst: Freitag 28. Januar 2005, 16:03
von mawe
Hi!

Meinst Du so?

Code: Alles auswählen

from Tkinter import *

def get_it():
    value = e.get()   # Inhalt von Entry in value speichern
    print value   
    root.quit()   

root = Tk()
e = Entry()
e.pack()
Button(text="Get it", command=get_it).pack()
root.mainloop()
Wenn das ein Dialogfenster werden soll, ist es vielleicht besser, wenn Du die Dialoge von Tkinter nimmst.

Gruß, mawe

Adresse speichern.

Verfasst: Freitag 28. Januar 2005, 16:22
von Psus82
Ich will ne E-Mailadresse speichern.
Wird der Entry erst mit einem get gespeichert oder direkt beim eintippen in den Entry?
Nach der Eingabe der Adresse will ich über einen Button wiederauf mein Mainwindow zurück(quasi Subwindow schliessen) nur wie? :?:
Gibt es eigentlich so etwas wie Sprungmarken?

Psus82

Verfasst: Freitag 28. Januar 2005, 16:37
von mawe
Hi!

Wenn Du den Button drückst, wird get ausgeführt und dabei der Inhalt gespeichert. Also nicht schon beim Eintippen.
Für sowas ist aber meiner Meinung nach tkSimpleDialog bestens geeignet:

Code: Alles auswählen

from Tkinter import *
import tkSimpleDialog

def get_email():
    # Hier wird der Dialog aufgerufen. Beim Drücken auf OK 
    # wird der Inhalt des Entys in email gespeichert
    email = tkSimpleDialog.askstring("Email","Wie lautet die email?")
    # zeige die email-adresse auf dem Label
    l.configure(text=email)
	
root = Tk()
l = Label()   # Hier wird nachher die email-adresse angezeigt
l.pack()
Button(text="Get email", command=get_email).pack()   # der Button ruft den Dialog auf
root.mainloop()
Gruß, mawe

Verfasst: Freitag 28. Januar 2005, 16:41
von Dookie
Hi Psus82,

nö Sprungmarken gibts zum Glück nicht ;)
Du könntest Dein Entrywidget mit einem StringVar Objekt verbinden, dann werden änderungen im Widget gleich in das StringVar Objekt gesichert und wenn du den Wert im StringVar änderst wird das gleich im Widget angezeigt.


Gruß

Dookie

Verfasst: Freitag 28. Januar 2005, 16:51
von Leonidas
Dookie hat geschrieben:nö Sprungmarken gibts zum Glück nicht ;)
Wetten doch?
Allerdings habe ich sie nicht ausprobiert, habe ich eigentlich auch nicht vor, ich will meinen Code schon durch andere Sachen unlesbar machen (LC mit Slices oder map(), filter(), reduce() und Lambda Konstrukte).

Verfasst: Donnerstag 5. Mai 2005, 16:54
von fresher
Hi, hab auch mal ne frage zu dem Thema:

Also ich hab ein ein Button und wenn man den drückt wird das SimpleDialog - Fenster angezeigt, jetzt kann ich ja was reinschreiben. was ich jetzt will ist das er mit denn text in ein bestehendes Entry fenster ausgibt und nicht Label().

Wie mach ich das am besten.


ähnlich zu diesem hier:

Code: Alles auswählen

from Tkinter import *
import tkSimpleDialog

def get_email():
    # Hier wird der Dialog aufgerufen. Beim Drücken auf OK
    # wird der Inhalt des Entys in email gespeichert
    email = tkSimpleDialog.askstring("Email","Wie lautet die email?")
    # zeige die email-adresse auf dem Label
    l.configure(text=email)
   
root = Tk()
l = Label()   # Hier wird nachher die email-adresse angezeigt
l.pack()
Button(text="Get email", command=get_email).pack()   # der Button ruft den Dialog auf
root.mainloop()
EDIT by mawe: Code in Python-tags gesetzt

Verfasst: Donnerstag 5. Mai 2005, 19:49
von mawe
Hi!

Naja, in ein Entry schreibst Du mit entry.insert(), also z.B.

Code: Alles auswählen

from Tkinter import *
import tkSimpleDialog

def get_email():
    email = tkSimpleDialog.askstring("Email","Email")
    e.insert(END, email)

root = Tk()
e = Entry()
e.pack()
Button(text="Get email", command=get_email).pack()
root.mainloop()
Gruß, mawe

Verfasst: Donnerstag 5. Mai 2005, 21:15
von fresher
Hi, vielen dank funktioniert :)