habe mir ein Fenster für das anlegen von Neukunden erstellt.
Es besteht aus einer Listbox und einer grid-Texteingabe.
Leider weiß ich nicht, wie ich von der Listbox die Auswahl an die grid-Texteingabe übergeben kann. Dies betrifft nur ein Übergabefeld.
Die Datenübernahme nach dem Ausfüllen der grid-Textfelder, stellt mich auch vor ein Problem.
Ich hoffe, daß Ihr mir da auf die Sprünge helfen könnt?
Code: Alles auswählen
class KundeNeu(Tk):
def __init__(self):
Tk.__init__(self)
# Fenster
self.title('officeplanet')
# Farbe Button-Frames
bcolor = 'orange'
# Farbe Buttons
bbcolor = 'grey'
fbcolor = 'black'
# Farbe Texteingabe, Textfenster
btxt = 'black'
ftxt = 'white'
# Text Schrift
font = 'NimbusSansL'
# Textgröße Buttons, Texteingabe
fontsize = 14
# Textgröße
output_fontsize = 12
## Listbox ##
text = 'Anlage Neukunde'
items = ['Privatkunde', 'Kleinbetrieb, bis 1000 € Jahresumsatz',
'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
'Großbetrieb, bis 25.000 € Jahresumsatz',
'Konzern, ab 25.000 € Jahresumsatz',
'Komunaler Träger']
self.selection = []
self.items = items
activated = (0,0) # Vor-Aktivierte Punkte
self.text = text
self.listboxTXT = Label(self, text=self.text, background=bcolor,
font=(font, fontsize))
self.listboxTXT.pack(anchor='n', ipadx=5, ipady=10, fill=BOTH)
self.listboxLabel = Label(self, text=self.text,
background=bcolor, font=(font, fontsize))
self.listboxLabel.pack(anchor='s', ipadx=5, ipady=10, fill=BOTH)
self.listbox = Listbox(self.listboxLabel, selectmode=SINGLE,
height=5, width=45, font=(font, output_fontsize))
self.listbox.pack(anchor='s')
# Einträge einfügen
for txt in self.items:
self.listbox.insert(END, txt)
# Vor-Aktivierte Punkte selektieren
for index in activated:
self.listbox.selection_set(index)
## Eingabefelder ##
self.txtLabel = Label(self, background=bcolor)
self.txtLabel.pack(anchor='s', expand='YES', fill=BOTH)
field = ['Kundenkreis', 'Namen', 'Zusatz', 'Straße, Nr.', 'PLZ',
'Ort', 'Ansprechpartner', 'Telefon', 'Handy', 'Fax',
'Mail','Internetseite']
r = 0
for name in field:
self.KundeNeuLab01 = Label(self.txtLabel, text=name,
width=15, background=bcolor, font=(font, fontsize)
).grid(row=r, column=0, padx=30,pady=10)
self.KundeNeuLab01 = Entry(self.txtLabel, relief=SUNKEN,
width=65, font=(font, fontsize)).grid(row=r, column=1,
padx=5, pady=10)
if name == 'Kundenkreis':
selection = self.display_selection
print('')
r = r + 1
## Buttons unten ##
label_down = Label(self, width=200, background=bcolor)
label_down.pack(anchor='s', ipady=10, fill=BOTH)
button = {
'01-Übernehmen' : self.display_selection,
'02-Abbrechen' : self.destroy,
}
for b in sorted(button):
Button(label_down, width=10, text=b.split('-')[1],
background=bbcolor, font=(font, fontsize),
foreground=fbcolor, command=button[b]).pack(side='left',
padx=210, pady=30)
def display_selection(self):
selection = []
for i in self.listbox.curselection():
index = int(i) # i ist ein String
selection.append(self.items[index])
print("Aktuelle Selektion ist:", selection)
return selection
class Controller(object):
def __init__(self):
self.view = KundeNeu()
self.view.mainloop()
if __name__ == '__main__':
Controller()