get entry?

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

get entry?

Beitragvon Psus82 » Freitag 28. Januar 2005, 15:08

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])

Beitragvon mawe » Freitag 28. Januar 2005, 16:03

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

Adresse speichern.

Beitragvon Psus82 » Freitag 28. Januar 2005, 16:22

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])

Beitragvon mawe » Freitag 28. Januar 2005, 16:37

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

Beitragvon Dookie » Freitag 28. Januar 2005, 16:41

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: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 28. Januar 2005, 16:51

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 Modvoice
fresher

Beitragvon fresher » Donnerstag 5. Mai 2005, 16:54

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])

Beitragvon mawe » Donnerstag 5. Mai 2005, 19:49

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

Beitragvon fresher » Donnerstag 5. Mai 2005, 21:15

Hi, vielen dank funktioniert :)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder