Problem mit TKinter und restlichem Programm

Fragen zu Tkinter.
SG
User
Beiträge: 12
Registriert: Sonntag 3. Juli 2005, 15:19

Problem mit TKinter und restlichem Programm

Beitragvon SG » Mittwoch 28. Juni 2006, 15:29

Problem mit TKinter und restlichem Programm

Hallo,
ich habe folgendes Problem.

Erst habe ich ein Programm geschrieben ohne tkinter Oberfläche. In diesem Programm werden alle Daten simpel durch die "raw_input" abfrage eingelesen.

Jetzt habe ich mit tkinter eine Oberfläche erstellt. U.a. mit einem Entry um die eingaben nicht mehr mit "raw_input" zu machen, sondern durch den Entry mit einem "Senden!" Button.

Ich hab das mal vereinfacht dargestellt:

Code: Alles auswählen

from Tkinter import *

def senden():
    text1 = eingabe.get()
    eingabe.delete('0',END)

root = Tk()

eingabe = Entry(root,)
eingabe.pack()

button_senden = Button(root,text= "Senden!", command = senden)
button_senden.pack()

root.mainloop()

print text1
#...
#...


Wenn ich jetzt dieses Programm starte und etwas eingebe, dann wird das aber nicht ausgegeben wie in der letzten Zeile mit "print text1" eigentlich vorhergesehen. Natürlich kann ich diese Ausgabe auch sofort in senden() machen, aber im laufe des Programmablaufs werden mehrere Eingaben getätigt und die Eingaben müssen dann einzelnt weiterverarbeitet werden.

Bitte helft mir. Danke!
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Mittwoch 28. Juni 2006, 17:25

So richtig habe ich nicht verstanden, was du mit den Eingaben machen möchtest. Speichere die Eingaben doch in einer Liste. Da kannst du später alle Einträge wieder ausgeben.

Code: Alles auswählen

from Tkinter import *

def senden():
    liste.append(eingabe.get())
    eingabe.delete('0',END)
   
liste = []
root = Tk()

eingabe = Entry(root,)
eingabe.pack()

button_senden = Button(root,text= "Senden!", command = senden)
button_senden.pack()

root.mainloop()

for i in liste:
    print i
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Mittwoch 28. Juni 2006, 19:34

In der Funktion senden() ist text1 eine lokale Variable beim abschließenden print global. Folgende Variante müßte den Zweck erfüllen:

Code: Alles auswählen

from Tkinter import *

def senden():
    global text1
    text1 = eingabe.get()
    eingabe.delete('0',END)

root = Tk()

eingabe = Entry(root,)
eingabe.pack()

button_senden = Button(root,text= "Senden!", command = senden)
button_senden.pack()

root.mainloop()

print text1

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder