rechenprogramm mit eingabefeldern

Fragen zu Tkinter.
Antworten
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

ich hab um meine mathehausaufgaben eine bischen zu beschleunigen und da mich der stoff lanweilt ein kleines tool geschrieben:

Code: Alles auswählen

# -*- coding: utf-8 -*-
from Tkinter import *

def Poly(xa, ya, xb, yb, a2):      #das sind die variablen der zu berechnenden Parabel
    a1=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(xb-xa)
    a0=ya-a2*(xa**2)-a1*xa
def Scheitel(xa, ya, xb, yb, a2):
    xs=((a2*(xa**2))-(a2*(xb**2))-ya+yb)/(a2*2*(xa-xb))
    ys=-a2*(xa**2)+2*a2*xa*xs-a2*(xs**2)+ya

def Prod(xa, ya, xb, yb, a2):
    xs=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(a2*2*(xa-xb))
    ys=-a2*(xa**2)+2*a2*xa*xs-a2*(xs**2)+ya
    n=((-ys)/a2)**(1/2.0)  
    n1=xs+n
    n2=xs-n
def berechnen():
    Poly(xa, ya, xb, yb, a2)
    scheitel(xa, ya, xb, yb, a2)
    Prod(xa, ya, xb, yb, a2)

root= Tk()
root.title('Parabel-Rechner')
root.geometry('500x200+300+300')
schalter=Button(root, text='Berechnen', command=berechnen)
schalter.pack(side=BOTTOM)
xa=Entry(root)
xa.pack()
ya=Entry(root)
ya.pack()
xb=Entry(root)
xb.pack()
yb=Entry(root)
yb.pack()
a2=Entry(root)
a2.pack()

root.mainloop()
es sit noch nicht fertig, da noch eine art von ausgabe fehlt aber momentan kommt immer wenn ich es schon mal durchlaufen lasse folgende Fehlermeldung:

Exception in Tkinter callback
Traceback (most recent call last):
File "Z:\Programme\Python_2_5\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "Y:\Eigene Dateien\Eigene Dokumente\Scripts\Parabel2.py", line 18, in berechnen
Poly(xa, ya, xb, yb, a2)
File "Y:\Eigene Dateien\Eigene Dokumente\Scripts\Parabel2.py", line 5, in Poly
a1=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(xb-xa)
TypeError: unsupported operand type(s) for ** or pow(): 'instance' and 'int'


sie tritt aber erst auf seitdem ich das ganze mit tkinter optisch ansprechender aussehen lassen wollte

was ist falsch und wie kann ich ne erklärungszeile von das jeweilige Entry fenster setzen?
BlackJack

Die Namen in Deinen Formeln sind nicht an Zahlen sondern an `Entry`-Objekte gebunden. Man kann mit Eingabefeldern nicht rechnen. Du musst den Inhalt auslesen und aus der Zeichenkette eine Zahl machen.

Code: Alles auswählen

In [68]: root = Tkinter.Tk()

In [69]: a = Tkinter.Entry()

In [70]: a.pack()   # Und etwas ins Eingabefeld eingeben.

In [71]: a.get()
Out[71]: '42'

In [72]: float(a.get())
Out[72]: 42.0
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

an dem fehler hat sich leider nichts geändert!

den unteren teil des codes (ab zeile23) hab ich abgeändert in:

Code: Alles auswählen

root= Tk()
root.title('Parabel-Rechner')
root.geometry('500x200+300+300')
schalter=Button(root, text='Berechnen', command=berechnen)
schalter.pack(side=BOTTOM)
xa=Entry(root)
xa.pack()
xa=xa.get()
ya=Entry(root)
ya.pack()
ya=ya.get()
xb=Entry(root)
xb.pack()
xb=xb.get()
yb=Entry(root)
yb.pack()
yb=yb.get()
a2=Entry(root)
a2.pack()
a2=a2.get()

root.mainloop()
[/code]
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Brobier mal das:

Code: Alles auswählen

root= Tk()
root.title('Parabel-Rechner')
root.geometry('500x200+300+300')
schalter=Button(root, text='Berechnen', command=berechnen)
schalter.pack(side=BOTTOM)
xae=Entry(root)
xae.pack()
xa=xae.get()
yae=Entry(root)
yae.pack()
ya=yae.get()
xbe=Entry(root)
xbe.pack()
xb=xbe.get()
ybe=Entry(root)
ybe.pack()
yb=ybe.get()
a2e=Entry(root)
a2e.pack()
a2=a2e.get()

root.mainloop()
:wink:
BlackJack

Arthur hat geschrieben:an dem fehler hat sich leider nichts geändert!
Das glaube ich nicht so ganz. Es ist zwar immer noch ein `TypeError` der sagt, dass die `**`-Operation mit den gegebenen Typen nicht unterstützt wird, aber diesmal ist auf der rechten Seite des Operators ein anderer Typ:

Code: Alles auswählen

In [4]: '42'**2
---------------------------------------------------------------------------
exceptions.TypeError               Traceback (most recent call last)

/home/marc/<ipython console>

TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
Von `Entry.get()` bekommst Du eine Zeichenkette und die lässt sich nicht potenzieren. Oft weist der Text einer Ausnahme recht deutlich auf das Problem hin.
den unteren teil des codes (ab zeile23) hab ich abgeändert in:

Code: Alles auswählen

root= Tk()
root.title('Parabel-Rechner')
root.geometry('500x200+300+300')
schalter=Button(root, text='Berechnen', command=berechnen)
schalter.pack(side=BOTTOM)
xa=Entry(root)
xa.pack()
xa=xa.get()
ya=Entry(root)
ya.pack()
ya=ya.get()
xb=Entry(root)
xb.pack()
xb=xb.get()
yb=Entry(root)
yb.pack()
yb=yb.get()
a2=Entry(root)
a2.pack()
a2=a2.get()

root.mainloop()
Du erzeugst die ganzen Eingabefelder und liest dann sofort deren Inhalt aus. Da steht aber noch nichts drin, also sind alle Namen an eine leere Zeichenkette gebunden. Du musst dem Benutzer schon die Chance lassen, etwas einzugeben bevor Du damit rechnest. ;-)
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

ich hab das problem behoben!
aber nun ist ein neues aufgetaucht an dem ich fast verzweifle so piselig es auch eigendlich ist!

so sieht der Code aus:

Code: Alles auswählen

# -*- coding: utf-8 -*-
from Tkinter import *
class App:
    def __init__(self, master):
        def Poly(xa, ya, xb, yb, a2):
            a1=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(xb-xa)
            a0=ya-a2*(xa**2)-a1*xa
        def Scheitel(xa, ya, xb, yb, a2):
            xs=((a2*(xa**2))-(a2*(xb**2))-ya+yb)/(a2*2*(xa-xb))
            ys=-a2*(xa**2)+2*a2*xa*xs-a2*(xs**2)+ya
        def Prod(xa, ya, xb, yb, a2):
            xs=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(a2*2*(xa-xb))
            ys=-a2*(xa**2)+2*a2*xa*xs-a2*(xs**2)+ya
            n=(abs(-ys)/a2))**(1/2.0)  
            n1=xs+n
            n2=xs-n
        def berechnen():                         #hier beschwert er sich über die Indentation
            xa=int(self.xa.get())
            ya=int(self.ya.get())
            xb=int(self.xb.get())
            yb=int(self.yb.get())
            a2=int(self.a2.get())
            Poly(xa, ya, xb, yb, a2)
            Scheitel(xa, ya, xb, yb, a2)
            Prod(xa, ya, xb, yb, a2)
        frame=Frame(master)
        frame.grid()
        self.xa=Entry(frame)
        self.xa.grid(row=1, column=1)
        self.ya=Entry(frame)
        self.ya.grid(row=2, column=1)
        self.xb=Entry(frame)
        self.xb.grid(row=3, column=1)
        self.yb=Entry(master)
        self.yb.grid(row=4, column=1)
        self.a2=Entry(frame)
        self.a2.grid(row=6, column=1)
        self.schalter=Button(root, text='Berechnen', command=berechnen)
        self.schalter.grid(row=8, column=3)
        self.lxa=Label(frame, text='XA')
        self.lxa.grid(row=1, column=3)
        self.lya=Label(frame, text='YA')
        self.lya.grid(row=2, column=3)
        self.lxb=Label(frame, text='XB')
        self.lxb.grid(row=3, column=3)
        self.lyb=Label(frame, text='YB')
        self.lyb.grid(row=4, column=3)
        self.la2=Label(frame, text='A2')
        self.la2.grid(row=6, column=3)        
root=Tk()
root.title('Parabelrechner')
root.geometry('500x500+100+100')

app=App(root)
root.mainloop()
die Sache ist folgende: wenn ich das programm starten will gibt er mir in einem kleinen fenster folgende meldung:
Error: Incsistent indentation detexted!
1) Your indentation is outright incorrct(easy to fix), OP
2) Your indentation mixes tabs and spaces.

To fix case 2, change all tab to spaces by using Edit->sect all follword by Format->Untabify Region and specify number of columns used by each tab.
die angegebene Methode hab ich schon was weiß ich wie oft wiederholt und es aus manuel durchgeführt aber es bringt nichts!
im syntax kann ich auch kein fehler finden!
BlackJack

Arthur hat geschrieben:die Sache ist folgende: wenn ich das programm starten will gibt er mir in einem kleinen fenster folgende meldung:
Error: Incsistent indentation detexted!
1) Your indentation is outright incorrct(easy to fix), OP
2) Your indentation mixes tabs and spaces.

To fix case 2, change all tab to spaces by using Edit->sect all follword by Format->Untabify Region and specify number of columns used by each tab.
Wo kommt denn diese Fehlermeldung her? Von Python jedenfalls nicht. In dem Quelltext ist ein Syntaxfehler etwas weiter oben bei ``n=``, da ist eine schliessende Klammer zuviel.
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

die fehlermeldung kommt vom IDLE.

Ich hab die Klammern jetzt passend geändert, aber die fehlermeldung bleibt

edit:

um den fehler besser einkreisen zu können hab ich mal noch ne kleine if schleife eingebaut:

Code: Alles auswählen

# -*- coding: utf-8 -*-
from Tkinter import *
class App:
    def __init__(self, master):
        def Poly(xa, ya, xb, yb, a2):
            a1=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(xb-xa)
            a0=ya-a2*(xa**2)-a1*xa
        def Scheitel(xa, ya, xb, yb, a2):
            xs=((a2*(xa**2))-(a2*(xb**2))-ya+yb)/(a2*2*(xa-xb))
            ys=-a2*(xa**2)+2*a2*xa*xs-a2*(xs**2)+ya
        def Prod(xa, ya, xb, yb, a2):
            xs=((a2*(xa**2))-(a2*(xb**2))-(ya-yb))/(a2*2*(xa-xb))
            ys=-a2*(xa**2)+2*a2*xa*xs-a2*(xs**2)+ya
            if (ys*a2)>0:
                n=(abs((-ys)/a2)))**(1/2.0)  
                n1=xs+n
                n2=xs-n
            else:                     #nun giebt er hier den fehler!
                gluek=Label(self, text='Keine Nullstellen!', font='arial 20 bold', fg='red')
                gluek.grid()
        def berechnen():
            xa=int(self.xa.get())
            ya=int(self.ya.get())
            xb=int(self.xb.get())
            yb=int(self.yb.get())
            a2=int(self.a2.get())
            Poly(xa, ya, xb, yb, a2)
            Scheitel(xa, ya, xb, yb, a2)
            Prod(xa, ya, xb, yb, a2)
        frame=Frame(master)
        frame.grid()
        self.xa=Entry(frame)
        self.xa.grid(row=1, column=1)
        self.ya=Entry(frame)
        self.ya.grid(row=2, column=1)
        self.xb=Entry(frame)
        self.xb.grid(row=3, column=1)
        self.yb=Entry(master)
        self.yb.grid(row=4, column=1)
        self.a2=Entry(frame)
        self.a2.grid(row=6, column=1)
        self.schalter=Button(root, text='Berechnen', command=berechnen)
        self.schalter.grid(row=8, column=3)
        self.lxa=Label(frame, text='XA')
        self.lxa.grid(row=1, column=3)
        self.lya=Label(frame, text='YA')
        self.lya.grid(row=2, column=3
        self.lxb=Label(frame, text='XB')
        self.lxb.grid(row=3, column=3)
        self.lyb=Label(frame, text='YB')
        self.lyb.grid(row=4, column=3)
        self.la2=Label(frame, text='A2')
        self.la2.grid(row=6, column=3)        
root=Tk()
root.title('Parabelrechner')
root.geometry('500x500+100+100')

app=App(root)
root.mainloop()
[/code]
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Arthur hat geschrieben:die fehlermeldung kommt vom IDLE.

Ich hab die Klammern jetzt passend geändert, aber die fehlermeldung bleibt

Code: Alles auswählen

            if (ys*a2)>0:
                n=(abs((-ys)/a2)))**(1/2.0)  
                n1=xs+n
                n2=xs-n
            else:                     #nun giebt er hier den fehler!
Passend wäre:

Code: Alles auswählen

                n=(abs((-ys)/a2))**(1/2.0)  
oder auch:

Code: Alles auswählen

                n = abs(ys / a2) ** (1 / 2.0)  
Der Python Style Guide kann sehr hilfreich sein, da man dann eher versteht, was man gerade geschrieben hat.
(abs(-ys)) ist z.B. mathematisch äquivalent zu abs(ys), Punkt- geht vor Strichrechnung und es wird von links nach rechts ausgewertet
-> weniger Klammern, die man vergessen kann, mehr Übersicht.
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

der fehler lag in zeile 48 da fehlte ne klammer! und ich hab sie an der falschen stelle eingesetzt :-( könnte mich schlagen...

danke für eure hilfe
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

so, hab jetzt alle klammern angepasst und eine vernünftige ausgabe für das Ergebniss erstellt. das einziege problem ist, dass er im ursprungsfenster ein kästchen in die falsche zeile schreibt.

Code: Alles auswählen

# -*- coding: utf-8 -*-
from Tkinter import *
class App:
    def __init__(self, master):
        def Poly(xa, ya, xb, yb, a2):
            a1=(a2*xa**2-a2*xb**2-ya+yb)/(xb-xa)
            a0=ya-a2*(xa**2)-a1*xa
            global TPO
            TPO='f(x)='+ str(a2)+ 'x^2+'+ str(a1)+ 'x+'+ str(a0)+ '\n'
        def Scheitel(xa, ya, xb, yb, a2):
            xs=(a2*xa**2-a2*xb**2-ya+yb)/(a2*2*(xa-xb))
            ys=-a2*xa**2+2*a2*xa*xs-a2*xs**2+ya
            global TS
            TS='S('+ str(xs)+ '/'+ str(ys)+ ')\n'
        def Prod(xa, ya, xb, yb, a2):
            p=(a2*xa**2-a2*xb**2-ya+yb)/(xb-xa)/a2
            q=(ya-a2*xa**2-p*a2*xa)/a2
            global TPR
            if p**2/4-q>0:  
                n1=-p/2+(p**2/4-q)**(1/2)
                n2=-p/2-(p**2/4-q)**(1/2)
                TPR='Die Nullstellen lauten: '+ str(n1) +' und '+str(n2)
            else:
                TPR='Keine Nullstellen!'
        def berechnen():
            if self.xa.get()=='':
                xa='0'
            else:
                xa=float(self.xa.get())
            if self.ya.get()=='':
                ya='0'
            else:
                ya=float(self.ya.get())
            if self.xb.get()=='':
                xb='0'
            else:
                xb=float(self.xb.get())
            if self.yb.get()=='':
                yb='0'
            else:
                yb=float(self.yb.get())
            if self.a2.get()=='':
                a2='0'
            else:
                a2=float(self.a2.get())
            Poly(xa, ya, xb, yb, a2)
            Scheitel(xa, ya, xb, yb, a2)
            Prod(xa, ya, xb, yb, a2)
            T=TPO+ TS+ TPR
            fen=Toplevel(master)
            mes=Label(fen, borderwidth=2, relief=RIDGE, text=T, font='arial 20 bold', fg='red', bg='yellow')
            mes.grid(row=6)
        frame=Frame(master)
        frame.grid()
        self.xa=Entry(frame)
        self.xa.grid(row=0, column=0)
        self.ya=Entry(frame)
        self.ya.grid(row=1, column=0)
        self.xb=Entry(frame)
        self.xb.grid(row=2, column=0)
        self.yb=Entry(master)                              #Dieses Feld steht am ende immer unter dem Button :-(
        self.yb.grid(row=3, column=0)
        self.a2=Entry(frame)
        self.a2.grid(row=4, column=0)
        self.schalter=Button(frame, text='Berechnen', command=berechnen)
        self.schalter.grid(row=5, column=0)
        self.lxa=Label(frame, text='XA')
        self.lxa.grid(row=0, column=1)
        self.lya=Label(frame, text='YA')
        self.lya.grid(row=1, column=1)
        self.lxb=Label(frame, text='XB')
        self.lxb.grid(row=2, column=1)
        self.lyb=Label(frame, text='YB')
        self.lyb.grid(row=3, column=1)
        self.la2=Label(frame, text='A2')
        self.la2.grid(row=4, column=1)        
root=Tk()
root.title('Parabelrechner')

app=App(root)
root.mainloop()
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Das Feld ist auch master zugeordnet und nicht frame. Ändere mal die Zeile in

Code: Alles auswählen

self.yb=Entry(frame)
Stephan
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

Danke, endlich fertig!

seinem eigenen code gegenüber ist man einfach zu wenig kritisch...
weil sowas könnte man ja nun auch selber finden

Edit:

Soooo...

hab mich noch mal rangesetzt und versuche jetzt mir die parabel noch zeichnen zu lassen. Leider funktioniert es aber noch nicht so ganz.
es wird kein fehler ausgegebn aber man kann nur so vage erkennen, da das mal ne parabel werden soll. kopiert euch den code ins idle und startet das programm gebt am besten die werte 1,2,3,4,1 ein und guckt was er ausgibt.

hier der Code:

Code: Alles auswählen

# -*- coding: utf-8 -*-
from Tkinter import *

class Koordinatensystem:
    def __init__(self, canvas):       
        kreuz=canvas.create_line(0,250,499,250, fill='black')+canvas.create_line(250,0,250, 499, fill='black')
        pfeily=canvas.create_line(250,0,240,10)+canvas.create_line(250,0,260,10)
        pfeilx=canvas.create_line(499,250,489,240, fill='black')+canvas.create_line(499,250,489,260, fill='black')
        x=canvas.create_text(480, 260, text='X')
        y=canvas.create_text(240, 20, text='Y')
        
class Parabel:
    def __init__(self, master, canvas):
        def formelholen(xa, ya, xb, yb, a2):
            global a1p
            global a0p
            a1p=(a2*xa**2-a2*xb**2-ya+yb)/(xb-xa)
            a0p=ya-a2*(xa**2)-a1p*xa          
        if master.xa.get()=='':
            xa='0'
        else:
            xa=float(master.xa.get())
        if master.ya.get()=='':
            ya='0'
        else:
            ya=float(master.ya.get())
        if master.xb.get()=='':
            xb='0'
        else:
            xb=float(master.xb.get())
        if master.yb.get()=='':
            yb='0'
        else:
            yb=float(master.yb.get())
        if master.a2.get()=='':
            a2='0'
        else:
            a2=float(master.a2.get())
        if master.xa.get()==master.ya.get()==master.xb.get()==master.yb.get():
            parabel=canvas.create_text(100, 90, text='Angaben nicht eindeutig!\nNur ein Punkt!')        
        else:
            formelholen(xa, ya, xb, yb, a2)
            for x in range(-25, 25):
                x1=x*10+250
                x2=x*10+260
                parabel=canvas.create_line(x1, 10*(a2*x**2+a1p*x+a0p)+250, x2, 10*(a2*(x+1)**2+a1p*(x+1)+a1p)+250)        #irdendwas mit der funktion stimmt nicht so recht würde ich sagen
class Rechner:
    def __init__(self, master):
        def poly(xa, ya, xb, yb, a2):
            a1=(a2*xa**2-a2*xb**2-ya+yb)/(xb-xa)
            a0=ya-a2*(xa**2)-a1*xa
            global TPO
            TPO='f(x)='+ str(a2)+ 'x^2+'+ str(a1)+ 'x+'+ str(a0)+ '\n'
        def scheitel(xa, ya, xb, yb, a2):
            xs=(a2*xa**2-a2*xb**2-ya+yb)/(a2*2*(xa-xb))
            ys=-a2*xa**2+2*a2*xa*xs-a2*xs**2+ya
            global TS
            TS='S('+ str(xs)+ '/'+ str(ys)+ ')\n'
        def prod(xa, ya, xb, yb, a2):
            p=(a2*xa**2-a2*xb**2-ya+yb)/(xb-xa)/a2
            q=(ya-a2*xa**2-p*a2*xa)/a2
            global TPR
            if p**2/4-q>0:  
                n1=-p/2+(p**2/4-q)**(1/2)
                n2=-p/2-(p**2/4-q)**(1/2)
                TPR='Die Nullstellen lauten: '+ str(n1) +' und '+str(n2)
            else:
                TPR='Keine Nullstellen!'
        def berechnen():
            if self.xa.get()=='':
                xa='0'
            else:
                xa=float(self.xa.get())
            if self.ya.get()=='':
                ya='0'
            else:
                ya=float(self.ya.get())
            if self.xb.get()=='':
                xb='0'
            else:
                xb=float(self.xb.get())
            if self.yb.get()=='':
                yb='0'
            else:
                yb=float(self.yb.get())
            if self.a2.get()=='':
                a2='0'
            else:
                a2=float(self.a2.get())
            if xa==ya==xb==yb:
                T='Angaben nicht eindeutig!\nNur ein Punkt!'
            else:
                poly(xa, ya, xb, yb, a2)
                scheitel(xa, ya, xb, yb, a2)
                prod(xa, ya, xb, yb, a2)
                T=TPO+ TS+ TPR
            fen=Toplevel(master)
            mes=Label(fen, borderwidth=2, relief=RIDGE, text=T, font='arial 20 bold', fg='red', bg='yellow')
            mes.grid(row=6)
        def zeichnen():
            koordsys=Koordinatensystem(self.tisch)
            parabel=Parabel(self, self.tisch)
        frame=Frame(master)
        frame.grid()
        self.xa=Entry(frame, justify=RIGHT)
        self.xa.grid(row=0, column=0)
        self.lxa=Label(frame, text='XA')
        self.lxa.grid(row=0, column=1)
        self.ya=Entry(frame, justify=RIGHT)
        self.ya.grid(row=1, column=0)
        self.lya=Label(frame, text='YA')
        self.lya.grid(row=1, column=1)
        self.xb=Entry(frame, justify=RIGHT)
        self.xb.grid(row=2, column=0)
        self.lxb=Label(frame, text='XB')
        self.lxb.grid(row=2, column=1)
        self.yb=Entry(frame, justify=RIGHT)
        self.yb.grid(row=3, column=0)
        self.lyb=Label(frame, text='YB')
        self.lyb.grid(row=3, column=1)
        self.a2=Entry(frame, justify=RIGHT)
        self.a2.grid(row=4, column=0)
        self.la2=Label(frame, text='A2')
        self.la2.grid(row=4, column=1)
        self.tisch=Canvas(frame, width=500, height=500, bg='white', borderwidth=1, relief=SOLID)
        self.tisch.grid(row=5, column=0, columnspan=3)
        self.schalterb=Button(frame, text='Berechnen', command=berechnen)
        self.schalterb.grid(row=1, column=2)
        self.schalterz=Button(frame, text='Zeichnen', command=zeichnen)
        self.schalterz.grid(row=3, column=2)
        

root=Tk()
root.title('Parabelrechner')


app=Rechner(root)
root.mainloop()
Antworten