Seite 1 von 1

Problem mit TKinter und restlichem Programm

Verfasst: Mittwoch 28. Juni 2006, 15:29
von SG
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!

Verfasst: Mittwoch 28. Juni 2006, 17:25
von Mawilo
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

Verfasst: Mittwoch 28. Juni 2006, 19:34
von HWK
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