Questa applicazione l'avevo scritta per il mio palmare in pratica selezionando una parola da il significato nell'altra lingua,inoltre è presente il bottone per aggiungere nuove parole,attualmente è messo Italiano-Giapponese ma basta modificare i Caption

import string
from Tkinter import*
datab={}
def Carica(datab):
ListJAP.delete(0, END)
ListITA.delete(0, END)
lungh=0
file=open('DBase.txt','r')
dato=file.readlines()
lungh=len(dato)
cont=0
for i in dato:
cont=cont+1
[it,jp]=string.split(i,"-")
if (cont<=lungh):
jp=jp[:-1]
datab[it]=jp
else:
datab[it]=jp
# CREAZIONE LISTA DATI
it=datab.keys()
it.sort()
for i in it:
ListITA.insert(END,i)
jp=datab.values()
jp.sort()
for i in jp:
ListJAP.insert(END,i)
def cerca(datab):
eleJAP=ListJAP.curselection()
eleITA=ListITA.curselection()
if (eleJAP!=()):
eleJAP=int(eleJAP[0])
elencoJAP=datab.values()
elencoJAP.sort()
for i in datab:
if (datab[i]==elencoJAP[eleJAP]):
testo='Risultato---> '+i+' - '+elencoJAP[eleJAP]
TextLabel.set(testo)
elif (eleITA!=()):
eleITA=int(eleITA[0])
elencoITA=datab.keys()
elencoITA.sort()
testo='Risultato---> '+elencoITA[eleITA]+' - '+datab[elencoITA[eleITA]]
TextLabel.set(testo)
def Call_cerca():
cerca(datab)
def Add():
win=Toplevel()
win.title('Aggiungi')
Frame_IT=Frame(win,pady=10)
Frame_IT.pack()
Label_IT=Label(Frame_IT,text='Italiano: ',padx=12)
Label_IT.pack(side=LEFT)
Text_IT=Entry(Frame_IT,textvariable=ValText_IT)
Text_IT.pack(side=LEFT)
Frame_JAP=Frame(win,pady=20)
Frame_JAP.pack()
Label_JAP=Label(Frame_JAP,text='Giapponese: ')
Label_JAP.pack(side=LEFT)
Text_JAP=Entry(Frame_JAP,textvariable=ValText_JAP)
Text_JAP.pack(side=LEFT)
def OK():
stringa=ValText_IT.get()+'-'+ValText_JAP.get()+'\n'
file=open('DBase.txt','a')
file.write(stringa)
file.close()
Carica(datab)
win.destroy()
Ok=Button(win,text='OK',padx=10)
Ok["command"]=OK
Ok.pack()
#win.mainloop()
App=Tk()
App.configure(width=35,height=15,)
App.title('Vocabolario Jap')
TextLabel=StringVar()
ValText_IT=StringVar()
ValText_JAP=StringVar()
FrameLabel=Frame(App)
LabelJAP=Label(FrameLabel,text="JAP:")
LabelITA=Label(FrameLabel,text='ITA:',anchor=W,justify=LEFT)
LabelJAP.pack(side=LEFT,padx=1)
LabelITA.pack(side=LEFT,padx=100)
FrameLabel.pack(side=TOP)
FrameList=Frame(App)
scrollITA=Scrollbar(FrameList)
scrollITA.pack(side=RIGHT, fill=Y)
scrollJAP=Scrollbar(FrameList)
ListJAP=Listbox(FrameList,width=15,height=15,yscrollcommand=scrollJAP.set)
ListJAP.pack(side=LEFT)
scrollJAP.pack(side=LEFT,fill=Y)
scrollJAP.config(command=ListJAP.yview)
ListITA=Listbox(FrameList,width=15,height=15,yscrollcommand=scrollITA.set)
ListITA.pack(side=LEFT)
scrollITA.config(command=ListITA.yview)
FrameList.pack()
FrameRisultato=Frame(App)
FrameRisultato.pack()
LabelRisultato=Label(FrameRisultato,textvariable=TextLabel)
LabelRisultato.pack(side=LEFT)
TextLabel.set('Risultato---> ')
Aggiungi=Button(App,text='AGGIUNGI',padx=10)
Aggiungi["command"]=Add
Aggiungi.pack(side=LEFT)
Ok=Button(App,text='OK',padx=10)
Ok["command"]=Call_cerca
Ok.pack(side=RIGHT)
Carica(datab)
App.mainloop()
Nella stessa cartella dello script deve essere presente il file di testo
DBase.txtHo allegato anche il file zippato
