Zdravím. Stále mě nějak nejde ta sekce, když chci něco vypujčit. Nechce se mě to okno zavřít a ty data zapsat do souboru.
Tady je zdroják..pls poraďte
# -*- coding: cp1250 -*-
from Tkinter import*
import tkSimpleDialog,pickle,tkMessageBox
class Program:
def about(self):
tkMessageBox.showinfo('About',u"Tento program nepodleha zadne licenci. Jedna se o open source.")
def __init__(self):
self.okno=Tk()
menubar = Menu(self.okno)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Exit", command=self.okno.destroy)
menubar.add_cascade(label="File", menu=filemenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", command=self.about)
menubar.add_cascade(label="Help", menu=helpmenu)
self.okno.config(menu=menubar)
ram=LabelFrame(text=u"Menu uživatelů")
ram.pack(fill=X)
Button(ram, text=u"Přidat uživatele",command=self.pridat_uzivatel).pack()
Button(ram, text=u"Smazat uživatele",command=self.smaz_uzivatel).pack()
Button(ram, text=u"Prohlížet seznam",command=self.ukaz_uzivatele).pack()
ram2=LabelFrame(text=u"Menu filmů")
ram2.pack(fill=X)
Button(ram2, text=u"Přidat film",command=self.pridat_film).pack()
Button(ram2, text=u"Smazat film", command=self.smazat_film).pack()
Button(ram2, text=u"Prohlížet filmy", command=self.prohlizet_filmy).pack()
ram3=LabelFrame(text=u"Menu pujcovani")
ram3.pack(fill=X)
Button(ram3, text=u"Vypujčit film",command=self.vypujcit).pack()
Button(ram3, text=u"Vrátit", command=self.smazat_pujcovani).pack()
Button(ram3, text=u"Prohlížet pujčené", command=self.prohlizet_pujceny).pack()
self.nacti_seznam_pujcenych()
self.nacti_seznam_uzivatelu()
def smazat_film(self):
jmeno=tkSimpleDialog.askstring(u'Smazat',u'Zadejte filmu pro smazání')
if self.seznam_filmu.has_key(jmeno):
del self.seznam_filmu[jmeno]
self.uloz_seznam()
def vytvor_vstup(self, okno, text):
ram=Frame(okno)
ram.pack(fill=X)
Label(ram, text=text).pack(side=LEFT)
vstup=Entry(ram)
vstup.pack(side=RIGHT)
return vstup
def pridej_film(self, jmeno, rok, zanr):
self.seznam_filmu[jmeno]=[rok, zanr]
self.okno2.destroy()
self.uloz_seznam()
def pridej_film2(self, jmeno, film, film2):
self.seznam_pujcenych[jmeno]=[film, film2]
self.okno3.destroy()
self.uloz_seznam()
def klik(self,akce):
jmeno=self.listbox.get(self.listbox.curselection()[0])
seznam=self.seznam_filmu[jmeno]
self.label_rok["text"]=u"Rok: %s"%seznam[0]
self.label_zanr["text"]=u"Žánr %s"%seznam[1]
def prohlizet_filmy(self):
self.okno2=Toplevel(self.okno)
self.okno2.focus_set()
self.okno2.grab_set()
self.listbox=Listbox(self.okno2)
self.listbox.pack()
self.listbox.bind('<Double-1>',self.klik)
for prvek in self.seznam_filmu:self.listbox.insert(END, prvek)
self.label_rok=Label(self.okno2,text="Rok: ")
self.label_rok.pack()
self.label_zanr=Label(self.okno2,text=u"Žánr: ")
self.label_zanr.pack()
def pridat_film(self):
self.okno2=Toplevel(self.okno)
self.okno2.focus_set()
self.okno2.grab_set()
jmeno=self.vytvor_vstup(self.okno2,u"Jméno: ")
rok=self.vytvor_vstup(self.okno2,u"Rok: ")
zanr=self.vytvor_vstup(self.okno2,u"Žánr: ")
Button(self.okno2,text=u"Přidat", command=lambda:self.pridej_film(jmeno.get(),rok.get(),zanr.get())).pack()
def ukaz_uzivatele(self):
self.okno2=Toplevel(self.okno)
self.okno2.focus_set()
self.okno2.grab_set()
listbox=Listbox(self.okno2)
listbox.pack(fill=BOTH,expand=1)
self.seznam_uzivatelu.sort()
for prvek in self.seznam_uzivatelu:listbox.insert(END,prvek)
Button(self.okno2,text=u"Zavřít",command=self.okno2.destroy).pack()
def nacti_seznam_pujcenych(self):
try:
soubor=file('seznam_pujcenych','r')
pickle.load(soubor)
except:
soubor=file('seznam_pujcenych','w')
pickle.dump([],soubor)
soubor.close()
soubor=file('seznam_pujcenych','r')
self.seznam_pujcenych=pickle.load(soubor)
soubor.close()
def nacti_seznam_uzivatelu(self):
try:
soubor=file('seznam_uzivatelu','r')
pickle.load(soubor)
pickle.load(soubor)
except:
soubor=file('seznam_uzivatelu','w')
pickle.dump([],soubor)
pickle.dump({},soubor)
soubor.close()
soubor=file('seznam_uzivatelu','r')
self.seznam_uzivatelu=pickle.load(soubor)
self.seznam_filmu=pickle.load(soubor)
soubor.close()
def smazat_pujcovani(self):
jmeno=tkSimpleDialog.askstring(u'Smazat',u'Zadejte filmu pro smazání')
if self.seznam_pujcenych.has_key(jmeno):
del self.seznam_pujcenych[jmeno]
self.uloz_seznam()
def prohlizet_pujceny(self):
self.okno2=Toplevel(self.okno)
self.okno2.focus_set()
self.okno2.grab_set()
self.listbox=Listbox(self.okno2)
self.listbox.pack()
self.listbox.bind('<Double-1>',self.klik)
for prvek in self.seznam_pujcenych:self.listbox.insert(END, prvek)
self.label_rok=Label(self.okno2,text="Rok: ")
self.label_rok.pack()
self.label_zanr=Label(self.okno2,text=u"Žánr: ")
self.label_zanr.pack()
def vypujcit(self):
self.okno3=Toplevel(self.okno)
self.okno3.focus_set()
self.okno3.grab_set()
jmeno=self.vytvor_vstup(self.okno3,u"Uzivatel: ")
film=self.vytvor_vstup(self.okno3,u"Film: ")
film2=self.vytvor_vstup(self.okno3,u"Film: ")
Button(self.okno3,text=u"Přidat", command=lambda:self.pridej_film2(jmeno.get(),film.get(),film2.get())).pack()
def uloz_seznam(self):
soubor=file('seznam_uzivatelu','w')
pickle.dump(self.seznam_uzivatelu,soubor)
pickle.dump(self.seznam_filmu,soubor)
pickle.bump(self.seznam_pujcenych,soubor)
soubor.close()
def pridat_uzivatel(self):
jmeno=tkSimpleDialog.askstring(u'Přidat',u'Zadejte jméno nového uživatele')
if jmeno:
self.seznam_uzivatelu.append(jmeno)
self.uloz_seznam()
def smaz_uzivatel(self):
jmeno=tkSimpleDialog.askstring(u'Přidat',u'Zadejte jméno uživatele pro smazání')
if jmeno in self.seznam_uzivatelu:
self.seznam_uzivatelu.remove(jmeno)
self.uloz_seznam()
Program()
mainloop()