Prozedurfehler beim Taschenrechner
Verfasst: Freitag 23. Juni 2006, 18:02
				
				Hi Leute! ich bin neu hier im Forum (wie ihr sicher schon seht) und habe eine Frage bezüglich meines Progammes:
Ich habe die Prozeduren "loeschen_2", "wurzel" und "hoch" aus der Klasse "Display" bis jetzt noch nicht zum Laufen gebracht. Kann mir bitte jemand helfen? Danke im Voraus!
  
[/code]
			Ich habe die Prozeduren "loeschen_2", "wurzel" und "hoch" aus der Klasse "Display" bis jetzt noch nicht zum Laufen gebracht. Kann mir bitte jemand helfen? Danke im Voraus!
Code: Alles auswählen
from Tkinter import*
class Taschenrechner(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.title ('Taschenrechner')
        self.ende=0
        self.display=Display(self)
        self.display.grid(column=0, row=0, sticky=E+W,
                          columnspan=10,pady=5)
        tasten=[(0,1,'7'),(1,1,'8'),(2,1,'9'),(3,1,'+'),
                (0,2,'4'),
                (1,2,'5'),(2,2,'6'),(3,2,'-'),(4,2,'('),
                (6,2,')'),(0,3,'1'),(1,3,'2'),
                (2,3,'3'),(3,3,'*'),
                (6,3,''),(0,4,'0'),(1,4,'.'),(2,4,''),
                (3,4,'/')]
        for tupel in tasten:
            Taste(self, tupel[2]).grid(column=tupel[0], row=tupel[1])
            Clear(self).grid(column=5, row=1)
            Gleich(self).grid(column=5, row=2)
            All_Clear(self).grid(column=4, row=1)
            Wurzel(self).grid(column=4, row=3)
            Hoch(self).grid(column=5, row=3)
        self.mainloop()
################################################################################
class Taste(Button):
    def __init__(self, fenster, aufschrift):
        Button.__init__(self, fenster, text=aufschrift,
                        command=self.druecken,width=3)
        self.aufschrift=aufschrift
        self.fenster=fenster
        
    def druecken(self):
        d=self.fenster.display
        if self.fenster.ende:
            d.delete(0, len(d.get()))
            self.fenster.ende = 0
        d.anhaengen(self.aufschrift)
class Clear(Button):
    def __init__(self, fenster):
        Button.__init__(self, fenster, text='C',
                        command=self.loeschen, width=3)
        self.display = fenster.display
    def loeschen(self):
        self.display.loeschen()
class All_Clear(Button):
    def __init__(self, fenster):
        Button.__init__(self, fenster, text='AC',
                        command=self.loeschen_2, width=3)
        self.display = fenster.display
    def loeschen_2(self):
        self.display.loeschen_2()
class Wurzel(Button):
    def __init__(self, fenster):
        Button.__init__(self, fenster, text='sqrt',
                        command=self.wurzel, width=3)
        self.display = fenster.display
    def wurzel(self):
        self.display.wurzel()
class Hoch(Button):
    def __init__(self, fenster):
        Button.__init__(self, fenster, text='^',
                        command=self.hoch, width=3)
        self.display = fenster.display
    def hoch(self):
        self.display.hoch()
        
class Gleich(Button):
    def __init__(self, fenster):
        Button.__init__(self, fenster, text='=',
                        command=self.rechnen,width=3)
        self.fenster=fenster
    def rechnen(self):
        ergebnis=eval(self.fenster.display.get())
        ende=len(self.fenster.display.get())
        self.fenster.display.insert(ende, '='+str(ergebnis))
        self.fenster.ende=1
class Display(Entry):
    def __init__(self,fenster):
        Entry.__init__(self,fenster,width=20)
    def anhaengen(self,zeichen):
        self.insert(len(self.get()),zeichen)
    def loeschen(self):
        self.delete(len(self.get())-1)
        
    def loeschen_2(self):
        self.delete("1.0",END)
        
    def wurzel(self):
        self.insert ("**(1.000/2)")
    def hoch(self):
        self.insert ('**')
  
t = Taschenrechner()
                  [/code]
