Program- Tkinter – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program- Tkinter – Python – Fórum – Programujte.comProgram- Tkinter – Python – Fórum – Programujte.com

 

mo.ri
~ Anonymní uživatel
5 příspěvků
12. 5. 2007   #1
-
0
-

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()

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
12. 5. 2007   #2
-
0
-

bump není dump, seznam_pujcenych má být slovník. funkce self.nacti_seznam_pucenych je zbytecna, stačí upravit tu druhou funkci... a mnoho dalšího
mělo by to fungovat...



# -*- 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_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):
self.seznam_pujcenych[jmeno]=film
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_uzivatelu(self):
try:
soubor=file('seznam_uzivatelu','r')
pickle.load(soubor)
pickle.load(soubor)
pickle.load(soubor)
except:
soubor=file('seznam_uzivatelu','w')
pickle.dump([],soubor)
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)
self.seznam_pujcenych=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 klik2(self,akce):
jmeno=self.listbox2.get(self.listbox2.curselection()[0])
seznam=self.seznam_pujcenych[jmeno]
self.label_["text"]="clovek: %s"%seznam

def prohlizet_pujceny(self):
self.okno2=Toplevel(self.okno)
self.okno2.focus_set()
self.okno2.grab_set()
self.listbox2=Listbox(self.okno2)
self.listbox2.pack()
self.listbox2.bind('<Double-1>',self.klik2)
for prvek in self.seznam_pujcenych:self.listbox2.insert(END, prvek)
self.label_=Label(self.okno2,text="clovek: ")
self.label_.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: ")

Button(self.okno3,text=u"Přidat", command=lambda:self.pridej_film2(jmeno.get(),film.get())).pack()

def uloz_seznam(self):
soubor=file('seznam_uzivatelu','w')
pickle.dump(self.seznam_uzivatelu,soubor)
pickle.dump(self.seznam_filmu,soubor)
pickle.dump(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()


lol, takže sem napsal maturitní práci co?

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
mo.ri
~ Anonymní uživatel
5 příspěvků
12. 5. 2007   #3
-
0
-

he he njn jsem na tohle lama

Nahlásit jako SPAM
IP: ...–
mo.ri
~ Anonymní uživatel
5 příspěvků
14. 5. 2007   #4
-
0
-

A nevíte někdo jak by šly udělat podmínky. Když danej uživatel a film nebudou v seznamu. Aby to hodilo nějaké okno nebo taknějak. díkes

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
14. 5. 2007   #5
-
0
-

no hele, ale tohle bys mohl vzládnout...

něco jako
if sekf,seznam_uzivatelu.has_key(jmeno):
pokracuj....

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
mori
~ Anonymní uživatel
2 příspěvky
17. 5. 2007   #6
-
0
-

myslel jsem takhle, ale tohle mě nefunguje



if self.seznam_pujcenych.has_key(jmeno):
self.seznam_pujcenych[jmeno]=film
self.okno3.destroy()

self.uloz_seznam()

else:

tkMessageBox.showerror("Chyba","Uzivatel neni v seznamu")

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Tkinter — založil bohetik

While v tkinter — založil Spectator

Tkinter a get() — založil Eidam655

Tkinter/had — založil selkir

Tkinter — založil Alan

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý