Wenn ich mein Programm aufrufe und alles anzeigen möchte klappt alles, aber wenn ich einen Kontakt hinzugefügt habe, dann kann öffnet er alle Kontakte nicht mehr mit einer Fehlermeldung
Code: Alles auswählen
from Tkinter import*
from ScrolledText import*
import pickle
mydict={}
einträge=0
x='unbelegt'
datei=open('mydict.pkl','rb')
mydict=pickle.load(datei)
einträge=len(mydict)
def check():
global name,nummer
name=eingabe_name.get()
nummer=eingabe_nummer.get()
if name=='':
eingabe_name.config(bg='red')
else:
eingabe_name.config(bg='white')
if nummer=='':
eingabe_nummer.config(bg='red')
else:
eingabe_nummer.config(bg='white')
def neu():
global name,nummer,mydict,einträge,x
check()
if name!='' and nummer!='':
name=name.upper()
for Name,Nummer in mydict.items():
if Name==name:
x='belegt'
if x=='unbelegt':
einträge=einträge+1
mydict[name]=nummer
datei=open('mydict.pkl','wb')
mydict=pickle.dump(mydict,datei)
datei.close()
l_einträge.config(text='Einträge = '+str(einträge))
l_kontakt.config(text=str(name)+' : '+str(nummer))
l_status.config(text='Speichervorgang erfolgreich!')
x='unbelegt'
def laden():
global name,nummer
name=eingabe_name.get()
nummer=eingabe_nummer.get()
l_kontakt.config(text='')
if name=='' and nummer=='':
l_status.config(text='Mindestangabe: Name oder Nummer!')
elif name!='' and nummer!='':
l_status.config(text='Nur Name oder Nummer angeben!')
elif name!='':
for Name,Nummer in mydict.items():
if name==Name:
l_kontakt.config(text=str(Name)+' : '+str(Nummer))
break
elif nummer!='':
for Name,Nummer in mydict.items():
if nummer==Nummer:
l_kontakt.config(text=str(Name)+' : '+str(Nummer))
break
def alles_laden():
ausgabe=''
f2=Tk()
f2.title('Anzeigen aller Kontakte')
frame2=Frame(f2,bg='LightsteelBlue',height=400,width=400)
frame2.pack()
l_überschrift2=Label(frame2,bg='grey',font=('Arial',14,'bold'),width=20,relief='raised',text='Alles Kontakte:')
l_überschrift2.place(x=20,y=20)
ausgabefeld=ScrolledText(frame2,bg='Lavender',font=('Arial',10,'bold'),width=50,height=20)
for Name,Nummer in mydict.items():
ausgabe=ausgabe+str(Name)+(30-len(Name))*' '+': '+str(Nummer)+'\n'
ausgabefeld.insert(END,ausgabe)
ausgabefeld.place(x=20,y=60)
l_kontakt.config(text='')
def alles_loeschen():
global mydict,einträge
mydict={}
einträge=0
data='(dp0','\n','.'
datei=open('mydict.pkl','w')
datei.write(str(data))
datei.close()
l_einträge.config(text='Einträge = '+str(einträge))
l_status.config(text='Löschvorgang erfolgreich!')
l_kontakt.config(text='')
hf=Tk()
hf.title('Telefonliste')
frame1=Frame(hf,bg='PaleGreen',height=400,width=400)
frame1.pack()
l_überschrift=Label(frame1,bg='PaleGreen',font=('Arial',30,'bold'),text='Telefonliste')
l_überschrift.place(x=90,y=20)
l_einträge=Label(frame1,bg='PaleGreen',font=('Arial',12,'bold'))
l_einträge.place(x=140,y=70)
l_einträge.config(text='Einträge = '+str(einträge))
l_name=Label(frame1,bg='grey',font=('Arial',14,'bold'),text='Name:',relief='raised')
l_name.place(x=30,y=100)
eingabe_name=Entry(frame1,width=20,font=('Arial',12,'bold'))
eingabe_name.place(x=50,y=140)
l_nummer=Label(frame1,bg='grey',font=('Arial',14,'bold'),text='Nummer:',relief='raised')
l_nummer.place(x=30,y=190)
eingabe_nummer=Entry(frame1,width=20,font=('Arial',12,'bold'))
eingabe_nummer.place(x=50,y=230)
b_neu=Button(frame1,bg='Chartreuse',font=('Arial',10,'bold'),width=15,text='Neu anlegen!',command=neu)
b_neu.place(x=255,y=120)
b_laden=Button(frame1,bg='Chartreuse',font=('Arial',10,'bold'),width=15,text='Kontakt anzeigen!',command=laden)
b_laden.place(x=255,y=160)
b_alles_laden=Button(frame1,bg='Chartreuse',font=('Arial',10,'bold'),width=15,text='Alles laden!',command=alles_laden)
b_alles_laden.place(x=255,y=200)
b_alles_loeschen=Button(frame1,bg='Chartreuse',font=('Arial',10,'bold'),width=15,text='Alles löschen!',command=alles_loeschen)
b_alles_loeschen.place(x=255,y=240)
l_status=Label(frame1,bg='PaleGreen',width=28,font=('Arial',14,'bold'))
l_status.place(x=30,y=290)
l_kontakt=Label(frame1,bg='PaleGreen',width=30,font=('Arial',13,'bold'))
l_kontakt.place(x=30,y=350)
myphoto=PhotoImage(file='telefon.gif')
L=Label(frame1,image=myphoto)
L.config(width=myphoto.width(), height=myphoto.height())
L.place(x=0,y=0)