.get() liefert nur leere Variablen
Verfasst: Sonntag 5. Januar 2014, 17:12
Hallo ich habe ein Problem mit meinem Pythoncode. Wie in der Überschrift beschrieben liefern bei mir die .get() Funktionen nur leere Werte.Das Problem ist ,dass dieses Phänomen erst seit der Ausgliederung eines Programmteils in ein zweites Fenster geschieht. Im Anschluss folgt zuerst der funktonierende alte Code und als zweites der neue kaputte.Ich hoffe ihr vergebt mir die nutzenorientierte,schlampige Programmierung
.
Das Problem liegt konkret im zweiten Code bei der .get() Funktion ,welche mir die Ergebnisse der Zeiteingaben besorgen soll.

Code: Alles auswählen
from Tkinter import *
test= Tk()
Label(test,text="Angabe des Datensammelintervalls").grid(row=0,column=1)
Label(test,text="Angabe der Testdauer").grid(row=0,column=2)
Label(test,text="Anzahl Tage").grid(row=1)
Label(test,text="Anzahl Stunden").grid(row=2)
Label(test,text="Anzahl Minuten").grid(row=3)
Label(test,text="Anzahl Sekunden").grid(row=4)
et = IntVar()
eh = IntVar()
em = IntVar()
es = IntVar()
et2 = IntVar()
eh2 = IntVar()
em2 = IntVar()
es2 = IntVar()
autowaterv = StringVar()
v0 = Entry(test,textvariable=et)
v = Entry(test,textvariable=eh)
v2 = Entry(test,textvariable=em)
v3 = Entry(test,textvariable=es)
v0_2 = Entry(test,textvariable=et2)
v_2 = Entry(test,textvariable=eh2)
v2_2 = Entry(test,textvariable=em2)
v3_2 = Entry(test,textvariable=es2)
v0.grid(row=1,column=1)
v.grid(row=2,column=1)
v2.grid(row=3,column=1)
v3.grid(row=4,column=1)
v0_2.grid(row=1,column=2)
v_2.grid(row=2,column=2)
v2_2.grid(row=3,column=2)
v3_2.grid(row=4,column=2)
def start():
input_time_t = et.get()
input_time_h = eh.get()
input_time_m = em.get()
input_time_s = es.get()
input_time_t_2 = et2.get()
input_time_h_2 = eh2.get()
input_time_m_2 = em2.get()
input_time_s_2 = es2.get()
global autowatervar
autowatervar = autowaterv.get()
global input_time_g
input_time_g = ((input_time_t*216000)+(input_time_h*3600)+(input_time_m*60)+input_time_s)
global input_time_g_2
input_time_g_2 = ((input_time_t_2*216000)+(input_time_h_2*3600)+(input_time_m_2*60)+input_time_s_2)
print ("Autowaterstatus: %s" %(autowatervar))
print ("Zeitintervall zwischen Datenabfage: %s" %(input_time_g))
print ("Zeit des gesamten Tests: %s" %(input_time_g_2))
test.destroy()
Button(test,text="start now",command=start).grid(row=5)
Checkbutton(test,text="Auto Watering?",variable=autowaterv,
onvalue="1",offvalue="0").grid(row=6,column=2)
test.mainloop()
Code: Alles auswählen
from Tkinter import *
Main = Tk()
def maingui():
Button(Main,text="start now",command=start).grid(row=6,column=2)
Label(Main,text="").grid(row=2)
Button(Main,text="Zeiteinstellungen",command=zeitgui).grid(row=6,column=3)
global autowaterv
autowaterv = StringVar()
Checkbutton(Main,text="Auto Watering?",variable=autowaterv,onvalue="1",offvalue="0").grid(row=1,column=1)
def zeitgui():
global Zeit
Zeit= Tk()
Label(Zeit,text="Angabe des Datensammelintervalls").grid(row=0,column=1)
Label(Zeit,text="Angabe der Testdauer").grid(row=0,column=2)
Label(Zeit,text="Anzahl Tage").grid(row=1)
Label(Zeit,text="Anzahl Stunden").grid(row=2)
Label(Zeit,text="Anzahl Minuten").grid(row=3)
Label(Zeit,text="Anzahl Sekunden").grid(row=4)
global et,eh,em,es
et = IntVar()
eh = IntVar()
em = IntVar()
es = IntVar()
global et2,eh2,em2,es2
et2 = IntVar()
eh2 = IntVar()
em2 = IntVar()
es2 = IntVar()
Entry(Zeit,textvariable=et).grid(row=1,column=1)
Entry(Zeit,textvariable=eh).grid(row=2,column=1)
Entry(Zeit,textvariable=em).grid(row=3,column=1)
Entry(Zeit,textvariable=es).grid(row=4,column=1)
Entry(Zeit,textvariable=et2).grid(row=1,column=2)
Entry(Zeit,textvariable=eh2).grid(row=2,column=2)
Entry(Zeit,textvariable=em2).grid(row=3,column=2)
Entry(Zeit,textvariable=es2).grid(row=4,column=2)
def save():
input_time_t = et.get()
input_time_h = eh.get()
input_time_m = em.get()
input_time_s = es.get()
input_time_t_2 = et2.get()
input_time_h_2 = eh2.get()
input_time_m_2 = em2.get()
input_time_s_2 = es2.get()
global input_time_g
input_time_g = ((input_time_t*216000)+(input_time_h*3600)+(input_time_m*60)+input_time_s)
global input_time_g_2
input_time_g_2 = ((input_time_t_2*216000)+(input_time_h_2*3600)+(input_time_m_2*60)+input_time_s_2)
print ("Zeitintervall zwischen Datenabfage: %s" %(input_time_g))
print ("Zeit des gesamten Tests: %s" %(input_time_g_2))
Zeit.destroy()
Button(Zeit,text="Save",command=save).grid(row=5)
def start():
global autowatervar
autowatervar = autowaterv.get()
print ("Autowaterstatus: %s" %(autowatervar))
Main.destroy()
maingui()
mainloop()