Ich habe mir zum Üben das Bankkonto-Beispiel von http://www.wspiegel.de/pykurs/kurs_index.htm genommen und mit einer Tkinter Gui versehen.
Code: Alles auswählen
# Bankkonto-Beispiel von: http://www.wspiegel.de/pykurs/kurs_index.htm
from Tkinter import *
class Bankkonto(object):
def __init__(self, startbetrag, kontonr):
self.kontostand=startbetrag
self.kontonr = kontonr
def einzahlung(self, betrag):
self.kontostand = self.kontostand + betrag
def auszahlung(self, betrag):
self.kontostand = self.kontostand - betrag
def ueberweisung(self, betrag, konto):
self.auszahlung(betrag)
konto.einzahlung(betrag)
def anzeigen(self):
if self.kontostand >= 0:
L.insert(END, str(self.kontonr)+" " + str(self.kontostand)+ " H")
else:
L.insert(END, str(self.kontonr)+" " + str(self.kontostand)+ " S")
def transfer(self):
self.tk1=Toplevel()
self.tk1.geometry("400x400")
self.l2=Label(self.tk1, text="Einzahlung")
self.l2.pack()
self.e=Entry(self.tk1, bg="white")
self.e.pack()
def einz():
L.delete(0, END)
self.einzahlung(int (self.e.get()))
command=k_anzeige()
self.tk1.destroy()
self.but1=Button(self.tk1, text="OK", command=einz)
self.but1.pack()
self.l3=Label(self.tk1, text="Auszahlung")
self.l3.pack()
self.e1=Entry(self.tk1, bg="white")
self.e1.pack()
def ausz():
L.delete(0, END)
self.auszahlung(int (self.e1.get()))
command=k_anzeige()
self.tk1.destroy()
self.but2=Button(self.tk1, text="OK", command=ausz)
self.but2.pack()
self.l4=Label(self.tk1, text="Ueberweisung")
self.l4.pack()
self.e2=Entry(self.tk1, bg="white")
self.e2.pack()
self.l5=Label(self.tk1, text="auf Konto")
self.l5.pack()
self.e3=Entry(self.tk1, bg="white")
self.e3.pack()
def ueberw():
L.delete(0, END)
self.ueberweisung(int (self.e2.get()), self.e3.get())
command=k_anzeige()
self.tk1.destroy()
self.but2=Button(self.tk1, text="OK", command=ueberw)
self.but2.pack()
konto1=Bankkonto(200, "Konto_1")
konto2=Bankkonto(100, "Konto_2")
tk=Tk()
tk.geometry("600x600")
b=Button(text="Konto_1", command=konto1.transfer)
b.pack()
b1=Button(text="Konto_2", command=konto2.transfer)
b1.pack()
L=Listbox(height=5, width=30, bg='white')
L.pack()
def k_anzeige():
konto1.anzeigen(), konto2.anzeigen()
command=k_anzeige()
tk.mainloop()
und hier die Fehlermeldung:
Code: Alles auswählen
line 20, in ueberweisung
konto.einzahlung(betrag)
AttributeError: 'str' object has no attribute 'einzahlung'
Mit dem Rechnen klappt alles. Im Editor geht es auch!
Wie bekomme ich den String aus e3.get() als Wert?
Ich habe leider im Forum und auch im Netz nichts gefunden! Oder hat es was mit StringVar zu tun? :K