Problem mit TKinter und restlichem Programm

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

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: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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

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 
Antworten