Hilfe GUI geht nur durch idle
Verfasst: Donnerstag 20. Februar 2014, 10:20
Also ich habe für die Schule ein kleines programm geschrieben und das gui erscheint auch wenn ich im idle F5 drücke jedoch wenn ich einen doppelklick auf die datei mache passiert nix 
bitte nicht wegen dem wahrscheinlich schlechten programmierstil(globale variablen,usw.) beschweren auser wenn das das problem ist danke
schonmal danke im vorraus

bitte nicht wegen dem wahrscheinlich schlechten programmierstil(globale variablen,usw.) beschweren auser wenn das das problem ist danke

Code: Alles auswählen
from Tkinter import *
import random
import math
import __future__ #für genaue nach komma stellen
#Legt Anzahl der zu berechnenden Terme fest
wdh = 10
#für zusatz funktion
r=0
def prog():
global r
global wdh
aexit.config(text="Nächster")
if wdh!=0:
#Rechenarten bestimmen(falls sie potenzen mit einbeziehen wollen die oberen beiden als Kommentar
#kennzeichnen und bei den unteren die Kennzeichnung als Kommentar entfernen
ra1=random.randint(1,4)
ra2=random.randint(1,4)
#ra1=random.randint(1,5)
#ra2=random.randint(1,5)
#Erste Rechenart bestimmen
if ra1 == 1:
s1 = "+"
if ra1 == 2:
s1 = "-"
if ra1 == 3:
s1 = "/"
if ra1 == 4:
s1 = "*"
if ra1 == 5:
s1 = "^"
#Zweite Rechenart bestimmen
if ra2 == 1:
s2 = "+"
if ra2 == 2:
s2 = "-"
if ra2 == 3:
s2 = "/"
if ra2 == 4:
s2 = "*"
if ra2 == 5:
s2 = "^"
#Zahlen bsetimmen
z1=random.randint(1,10)
z2=random.randint(1,10)
z3=random.randint(1,10)
#Hier wird die rechnung in die Datei gschrieben und auf dem Interpreter ausgegeben
rechnung = ("("+ str(z1) + (s1) + str(z2) + ")"+ (s2) + str(z3))
logfile.write("Rechnung:" +(rechnung)+ "\n")
t.config(text= (rechnung))
#Das richtige Ergebnis wird in die Datei gesschrieben
rierg = eval(((compile((rechnung),"string","eval",__future__.division.compiler_flag))))
logfile.write("Richtiges Ergebnis:" + str(rierg)+ "\n")
#Der Schüler gibt sein Ergebns ein welches in die Datei geschrieben wird
eigerg=(eerg.get())
logfile.write("Ergebnis von " + (j) +":" + str(eigerg)+"\n\n" )
wdh = wdh - 1
#kleiner zusatz
if eigerg == rierg:
r = r + 1
else:
logfile.write((j) + " hat" + str(r)+ "/10 richtig")
aexit.config(text="Beenden",command=g.destroy)
#Interface Namens eingabe
f= Tk()
f.title("Test")
w=Label (master=f,text= "Name und vorname bitte?")
w.pack()
v = StringVar()
eA = Entry(master=f,textvariable=v)
eA.pack()
bexit = Button(master=f,text="Weiter",command =f.destroy)
bexit.pack()
f.mainloop()
#Es wird nach Name und Vorname gefragt und eine Datei mit dem Namen dieser Person erstellt
v.set("Name,Vorname")
j = v.get()
logfile = open("Test von " +(j) +".txt","a")
#Interface Rechnung
g = Tk()
g.title("Test")
t=Label (master=g,text= "Term:")
t.pack()
eerg = Entry(master=g)
eerg.insert(0,0)
eerg.pack()
aexit = Button(master=g,text="Start",command = prog)
aexit.pack()
g.mainloop()
logfile.close
#Ende
schonmal danke im vorraus