Hallo,
ich setz einfach mal den code rein.
@ schlangenbeschwörer:
Ich hänge immer noch hartnäckig an meiner Bankkonto-Übung.
-----
Bevor ich weiter an dem Program arbeite, möchte ich, dass wenn die 'action-Buttons' angeklickt werden und sich das Toplevel-Fenster für weitere Eingaben öffnet, die Buttons deaktiviert sind.
Ich habe schon über mehrere Tage alles mögliche ausprobiert. Vielleicht ist der ganze Ansatz auch komplett daneben.
Ich weiß es nicht!
Grüße
Rai
Code: Alles auswählen
# bis Zeile-13 von: http://www.wspiegel.de/pykurs/kurs_index.htm
import Tkinter as tk
root = tk.Tk()
class Bankkonto(object):
def __init__(self, startbetrag, kontonr):
self.stand = float (startbetrag)
self.kontonr = kontonr
def einzahlung(self, betrag):
self.stand = self.stand + betrag
def auszahlung(self, betrag):
self.stand = self.stand - betrag
def ueberweisung(self, betrag, konto):
self.auszahlung (betrag)
konto.einzahlung (betrag)
def transfer(self):
self.tk1 = tk.Toplevel()
tk.Label (self.tk1, fg='blue', text="Konto Nr. " + str (self.kontonr) ).grid()
tk.Label (self.tk1, text = "Einzahlung").grid()
self.e = tk.Entry(self.tk1, bg="white")
self.e.grid()
#frm.frame.destroy()
def einz():
self.einzahlung (float(self.e.get()))
frm.de_stroy()
self.tk1.destroy()
tk.Button (self.tk1, text = "OK", command = einz).grid()
tk.Label(self.tk1, text = "Auszahlung").grid()
self.e1 = tk.Entry(self.tk1, bg = "white")
self.e1.grid()
def ausz():
self.auszahlung (float(self.e1.get()))
frm.de_stroy()
self.tk1.destroy()
tk.Button (self.tk1, text = "OK", command = ausz).grid()
tk.Label (self.tk1, text = "Ueberweisung").grid()
self.e2=tk.Entry (self.tk1, bg = "white")
self.e2.grid()
tk.Label (self.tk1, text = "auf Konto").grid()
self.e3=tk.Entry (self.tk1, bg = "white")
self.e3.grid()
def ueberw():
self.ueberweisung (float (self.e2.get()), konten.get(self.e3.get()))
frm.de_stroy()
self.tk1.destroy()
tk.Button (self.tk1, text = "OK", command = ueberw).grid()
konten = {'11': Bankkonto (1148.12, 11),
'22': Bankkonto (217.98, 22),
'33': Bankkonto (-99.28, 33)}
for value in konten.values():
b = Bankkonto(value.stand, value.kontonr)
class Frames(Bankkonto):
def fra_me(self, event = None):
self.frame = tk.Frame()
self.frame.grid()
self.text = tk.Text(self.frame, width = 60, height = 1)
self.text.grid()
self.text.insert(tk.END, "%26s%24s" % ("Konto","Saldo"))
self.text.config(state = 'disabled')
for key, value in konten.items():
self.text2 = tk.Text(self.frame, width = 60, height = 2)
self.text2.grid()
if event:
self.but.config(state = 'disabled')
self.but = tk.Button (self.text2, text = "action", width = 5, fg = 'blue', command = value.transfer)
#self.tk1.bind('<FocusIn>', frm.fra_me)
self.text2.window_create(tk.END, window = self.but)
self.text2.insert(tk.END, "%15d" % (value.kontonr))
#self.but.config(state = 'disabled')
if value.stand >=0:
self.text2.insert(tk.END, "%25.2f" % (value.stand) +" H")
else:
self.text2.insert(tk.END, "%25.2f" % abs(value.stand) +" S")
self.text2.tag_add('one', '1.20', '1.45')
self.text2.tag_configure('one', foreground="red")
self.text2.config(state = 'disabled')
def de_stroy(self):
self.frame.destroy(),
frm.fra_me(),
frm = Frames(value.stand, value.kontonr)
frm.fra_me()
root.mainloop()