ich hab mir mal n kleine prog gebastelt, was eine quadratische gleichung anhand der p-q-formel löst, doch jetzt hab ich das problem, dass sich die lösung (loesungsvar) nach dem click auf "ok" nicht aktualisiert, also zwischen ok und schliessen steht eine "0", nach einem click auf "ok" sollte aber die richtige lösung stehen(falls es eine orndliche gibt...)
vlt kann mir ja jemand helfen, ich bin auch für verbesserungsvorschläge anderer art offen (z.B weiss ich nicht ob ganzen self's vor den namen sein müssen), denn ich programmiere erst seit kurzem...
Code: Alles auswählen
import Tkinter
import math
class Quad(Tkinter.Frame):
def __init__(self, root):
Tkinter.Frame.__init__(self, root)
self.varp = Tkinter.StringVar()
self.varq = Tkinter.StringVar()
self.loesungsvar = 0
self.label = Tkinter.Label(self, text = "dieses programm löst Quadratische gleichungen mit der p-q-Formel")
self.label.pack()
self.label = Tkinter.Label(self, text = "geben sie 'p' ein:")
self.label.pack()
self.entryp = Tkinter.Entry(self, textvariable = self.varp)
self.entryp.pack()
self.label = Tkinter.Label(self, text = "geben sie 'q' ein:")
self.label.pack()
self.entryq = Tkinter.Entry(self, textvariable = self.varq)
self.entryq.pack()
self.ok = Tkinter.Button(self, text = "OK", command = lambda: self.loesg(self.entryp.get(), self.entryq.get()))
self.ok.pack(side = 'left')
self.cancel = Tkinter.Button(self, text = "schliessen", command = root.quit)
self.cancel.pack(side = "right")
self.loesung = Tkinter.Label(self, text = self.loesungsvar)
self.loesung.pack(side = 'bottom')
def loesg(self, ps, qs):
p, q = float(ps), float(qs)
x1=(p/2.0)+math.sqrt(((p/2.0)**2.0)-q)
x2=(p/2.0)-math.sqrt(((p/2.0)**2.0)-q)
print '\nx1 ist: %d \nx2 ist: %d \n' % (x1, x2)
self.loesungsvar = 'x1 ist: %d x2 ist: %d' % (x1, x2)
def main():
root = Tkinter.Tk()
app = Quad(root)
app.pack()
app.mainloop()
if __name__ == '__main__':
main()