get entry?

Fragen zu Tkinter.
Antworten
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Wie mache ich das das ich ein Entry in eine Variable speichere und das Fenster sich dann schließt?

Jemand ne Idee?
Gruß
Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

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
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

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
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
[code]#!/usr/bin/env python
import this[/code]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

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
fresher

Hi, vielen dank funktioniert :)
Antworten