ne, ich arbeite im Moment nur mit IDLE. Wie mache ich das denn? Programme ohne GUI/Tkinter führe ich auch direkt in der Konsole(gnome-terminal) aus...
Naja, hier erstmal der Code:
(Bitte nicht schimpfen, ich weiß der ist hässlich, aber das ist halt mein erstes Projekt mit Tkinter und eine der ersten Projekte mit Python überhaupt)
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from Tkinter import *
import tkMessageBox
def close():
root.destroy()
def zeig():
punkte=float((noten[0]*12)+(noten[1]*12)+(noten[2]*8)+(noten[3]*8)\
+(noten[4]*4)+(noten[5]*4)+(noten[6]*4)+(noten[7]*4))
punkte=round(punkte,1)
pschnitt=float((punkte/56.0))
pschnitt=round(pschnitt,2)
nc=float(((-(1/3.0)*pschnitt)+(17.0/3)))
nc=round(nc,2)
#print punkte, pschnitt, nc
v1.set(punkte)
v2.set(pschnitt)
v3.set(nc)
def calc():
noten[0]=float(feld1.get())
noten[1]=float(feld2.get())
noten[2]=float(feld3.get())
noten[3]=float(feld4.get())
noten[4]=float(feld5.get())
noten[5]=float(feld6.get())
noten[6]=float(feld7.get())
noten[7]=float(feld8.get())
error=0
for i in range(0,8):
if noten[i] < 1:
tkMessageBox.showerror("Error","Die eingegebene Punktzahl muss \
mindestens 1 betragen.")
error=1
elif noten[i] > 15:
tkMessageBox.showerror("Error","Die eingegebene Punktzahl darf \
maximal 15 betragen.")
error=1
if error==0:
zeig()
noten=[" "," "," "," "," "," "," "," "]
nc=0
punkte=" "
pschnitt=" "
abi=" "
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
root=Tk()
root.title("Abirechner")
frlinks=Frame(root,width=20)
frrechts=Frame(root,width=20)
frunten=Frame(root)
frbot=Frame(root)
ergf1=Frame(frbot)
ergf2=Frame(frbot)
ergf3=Frame(frbot)
erg1=Label(ergf1,textvariable=v1)
erg2=Label(ergf2,textvariable=v2)
erg3=Label(ergf3,textvariable=v3)
ergt1=Label(ergf1,text="Punkte: ")
ergt2=Label(ergf2,text="Punktedurchschnitt: ")
ergt3=Label(ergf3,text="Numerus Clausus (NC): ")
ber=Button(frunten,text="Berechnen",command=calc)
clo=Button(frunten,text="Schließen",command=close)
f1=Frame(frlinks,pady=1)
f2=Frame(frlinks,pady=1)
f3=Frame(frlinks,pady=1)
f4=Frame(frlinks,pady=1)
f5=Frame(frlinks,pady=1)
f6=Frame(frlinks,pady=1)
f7=Frame(frlinks,pady=1)
f8=Frame(frlinks,pady=1)
feld1=Entry(frrechts,width=3)
feld2=Entry(frrechts,width=3)
feld3=Entry(frrechts,width=3)
feld4=Entry(frrechts,width=3)
feld5=Entry(frrechts,width=3)
feld6=Entry(frrechts,width=3)
feld7=Entry(frrechts,width=3)
feld8=Entry(frrechts,width=3)
lab1=Label(f1,text="1. LK (hochgestuft):")
lab2=Label(f2,text="2. LK (hochgestuft):")
lab3=Label(f3,text="3. LK (runtergestuft):")
lab4=Label(f4,text="4. GK (schriftlich):")
lab5=Label(f5,text="5. GK (mündlich):")
lab6=Label(f6,text="6. GK (mündlich):")
lab7=Label(f7,text="7. Fach:")
lab8=Label(f8,text="8. Fach:")
frbot.pack(side=BOTTOM)
frunten.pack(side=BOTTOM)
frrechts.pack(side=RIGHT,fill=Y)
frlinks.pack(side=LEFT,fill=BOTH)
ergf1.pack()
ergf2.pack()
ergf3.pack()
ergt1.pack(side=LEFT)
ergt2.pack(side=LEFT)
ergt3.pack(side=LEFT)
erg1.pack(side=LEFT)
erg2.pack(side=LEFT)
erg3.pack(side=LEFT)
f1.pack()
f2.pack()
f3.pack()
f4.pack()
f5.pack()
f6.pack()
f7.pack()
f8.pack()
lab1.pack()
lab2.pack()
lab3.pack()
lab4.pack()
lab5.pack()
lab6.pack()
lab7.pack()
lab8.pack()
feld1.pack()
feld2.pack()
feld3.pack()
feld4.pack()
feld5.pack()
feld6.pack()
feld7.pack()
feld8.pack()
clo.pack(side=RIGHT)
ber.pack(side=RIGHT)
root.mainloop()
Viele Grüße
Tobi