Forum » Programiranje » python -slovar
python -slovar
Valex86 ::
Lep pozdrav!
Narediti morem slovar v pythonu. Moram imeti okno za vnos besed in razlag, ki se bodo shranjevale v neko text datoteko in okno v katerega bo uporabnik napisal željeno besedo in se mu bo izpisala razlaga te besede. če besede ni v datoteki javi napako.
Prosim za pomoč. Vsak nasvet bo prišel prav.
Hvala
Narediti morem slovar v pythonu. Moram imeti okno za vnos besed in razlag, ki se bodo shranjevale v neko text datoteko in okno v katerega bo uporabnik napisal željeno besedo in se mu bo izpisala razlaga te besede. če besede ni v datoteki javi napako.
Prosim za pomoč. Vsak nasvet bo prišel prav.
Hvala
Valex86 ::
Hvala malo je že pomagalo. Kako pa lahko naredim kot nek grafični vmesnik, da bi uporabnik lahko dodal besedo ali pa jo poiskal?
PromeuZ ::
http://wiki.python.org/moin/TkInter
http://www.pythonware.com/library/tkint...
http://docs.python.org/library/tkinter....
http://www.pythonware.com/library/tkint...
http://docs.python.org/library/tkinter....
<!-- https://pisalnik.wordpress.com -->
professor ::
uporabi PyQt če misliš še naprej kaj programirati, PromeuZ-jev predlog z Tcl/Tk ki je v pythonu prikazan kot tkinter ni slaba ideja
Valex86 ::
Lep pozdrav!
Kaj mi lahko napišete prosim postopek kako namestiti pyQt?
Najlepša hvala
Kaj mi lahko napišete prosim postopek kako namestiti pyQt?
Najlepša hvala
Zgodovina sprememb…
- spremenil: Valex86 ()
Valex86 ::
Lep pozdrav!
Prosim za pomoč. Osnovo za slovar sem si že naredila sedaj pa nevem kako na naredim z besedami da mi jih prevede
from Tkinter import*
jeziki=("slo", "ang", "nem")
def pretvori():
if(b.get()==jeziki[0] and c.get()==jeziki[1]):
slo_v_ang()
if(b.get()==enote[0] and c.get()==enote[2]):
slo_v_nem()
if(b.get()==enote[1] and c.get()==enote[0]):
ang_v_slo()
if(b.get()==enote[1] and c.get()==enote[2]):
ang_v_nem()
if(b.get()==enote[2] and c.get()==enote[0]):
nem_v_slo()
if(b.get()==enote[2] and c.get()==enote[1]):
nem_v_ang()
def slo_v_ang():
s.set(str()
def slo_v_nem():
s.set(str()
def ang_v_slo():
s.set(str()
def ang_v_nem():
s.set(str()
def nem_v_slo()
s.set(str()
def nem_v_ang():
s.set(str()
okno=Tk()
okno.title('SLOVAR')
oznaka=Label(okno,text='Vnesi besedo')
oznaka.pack()
a=Entry(okno)
a.pack()
oznaka1=Label(okno,text='Izberi jezik v katrem si napisal besedo')
oznaka1.pack()
b=Entry(okno)
b.pack()
oznaka3=Label(okno,text='Izberi jezik v katerega želiš pretvoriti besedc)
oznaka3.pack()
c=Entry(okno)
c.pack()
pretvarjaj=Button(okno,text='Pretvori',command=pretvori)
pretvarjaj.pack()
s=StringVar()
d=Label(okno,textvariable=s)
d.pack()
okno.mainloop()
Prosim za pomoč. Osnovo za slovar sem si že naredila sedaj pa nevem kako na naredim z besedami da mi jih prevede
from Tkinter import*
jeziki=("slo", "ang", "nem")
def pretvori():
if(b.get()==jeziki[0] and c.get()==jeziki[1]):
slo_v_ang()
if(b.get()==enote[0] and c.get()==enote[2]):
slo_v_nem()
if(b.get()==enote[1] and c.get()==enote[0]):
ang_v_slo()
if(b.get()==enote[1] and c.get()==enote[2]):
ang_v_nem()
if(b.get()==enote[2] and c.get()==enote[0]):
nem_v_slo()
if(b.get()==enote[2] and c.get()==enote[1]):
nem_v_ang()
def slo_v_ang():
s.set(str()
def slo_v_nem():
s.set(str()
def ang_v_slo():
s.set(str()
def ang_v_nem():
s.set(str()
def nem_v_slo()
s.set(str()
def nem_v_ang():
s.set(str()
okno=Tk()
okno.title('SLOVAR')
oznaka=Label(okno,text='Vnesi besedo')
oznaka.pack()
a=Entry(okno)
a.pack()
oznaka1=Label(okno,text='Izberi jezik v katrem si napisal besedo')
oznaka1.pack()
b=Entry(okno)
b.pack()
oznaka3=Label(okno,text='Izberi jezik v katerega želiš pretvoriti besedc)
oznaka3.pack()
c=Entry(okno)
c.pack()
pretvarjaj=Button(okno,text='Pretvori',command=pretvori)
pretvarjaj.pack()
s=StringVar()
d=Label(okno,textvariable=s)
d.pack()
okno.mainloop()
FrEaKmAn ::
a se men samo zdi al tukaj velik del kode manjka? npr
pa je potrebno imeti za vsako pretvorbo prav svojo metodo?
s.set(str()
pa je potrebno imeti za vsako pretvorbo prav svojo metodo?
Valex86 ::
from Tkinter import* jeziki=("slo", "ang", "nem") def pretvori(): if(b.get()==jeziki[0] and c.get()==jeziki[1]): slo_v_ang() if(b.get()==jeziki[0] and c.get()==jeziki[2]): slo_v_nem() if(b.get()==jeziki[1] and c.get()==jeziki[0]): ang_v_slo() if(b.get()==jeziki[1] and c.get()==jeziki[2]): ang_v_nem() if(b.get()==jeziki[2] and c.get()==jeziki[0]): nem_v_slo() if(b.get()==jeziki[2] and c.get()==jeziki[1]): nem_v_ang() def slo_v_ang(): s.set(str(int(a.get())*100)+jeziki[1]) def slo_v_nem(): s.set(str(int(a.get())*1000)+jeziki[2]) def ang_v_slo(): s.set(str(float(a.get())/100)+jeziki[0]) def ang_v_nem(): s.set(str(int(a.get())*10)+jeziki[2]) def nem_v_slo() s.set(str(float(a.get())/1000)+jeziki[0]) def nem_v_ang(): s.set(str(float(a.get())/10)+jeziki[1]) okno=Tk() okno.title('SLOVAR') oznaka=Label(okno,text='Vnesi besedo') oznaka.pack() a=Entry(okno) a.pack() oznaka1=Label(okno,text='Izberi jezik v katrem si napisal besedo') oznaka1.pack() b=Entry(okno) b.pack() oznaka3=Label(okno,text='Izberi jezik v katerega želiš pretvoriti besedc) oznaka3.pack() c=Entry(okno) c.pack() pretvarjaj=Button(okno,text='Pretvori',command=pretvori) pretvarjaj.pack() s=StringVar() d=Label(okno,textvariable=s) d.pack() okno.mainloop()
Manjka mi koda, ker ne vem kak naj naredim da bo prevajal oz kam naj napišem slovenske, angleške in nemške besede in jih pol ko uporabnik napiše eno besedo pretvori v angleščino, nem ali pa slo.
Zgodovina sprememb…
- spremenil: Mavrik ()
x3ca ::
Ne da se mi razlagat, ti pa priložim kodo, kako bi se jaz lotla. Bi mogla bit sama po sebi dovolj razumljiva, če ne pa vprašaj:
Preveri in če sporoči če dela, mal sm že out iz pythona :)
jeziki=['slo','eng','nem'] besede=[] besede.append(['ena', 'dva', 'tri']) besede.append(['one', 'two', 'three']) besede.append(['eins', 'zwei', 'drei']) iskana_beseda='tri' prevedi_iz='slo' prevedi_v='eng' print besede[jeziki.index(prevedi_v)][besede[jeziki.index(prevedi_iz)].index(iskana_beseda)]
Preveri in če sporoči če dela, mal sm že out iz pythona :)
Zgodovina sprememb…
- spremenil: Mavrik ()
Valex86 ::
from Tkinter import *
j=("slo", "ang", "nem")
def pretvori():
if(b.get()==j[0] and c.get()==j[1]):
slo_v_ang()
if(b.get()==j[0] and c.get()==j[2]):
slo_v_nem()
if(b.get()==j[1] and c.get()==j[0]):
ang_v_slo()
if(b.get()==j[1] and c.get()==j[2]):
ang_v_nem()
if(b.get()==j[2] and c.get()==j[0]):
nem_v_slo()
if(b.get()==j[2] and c.get()==j[1]):
nem_v_ang()
slo="ena,dva,tri,štiri,pet"
ang="one,two,three,four,five"
nem="eins,zwei,drei,vier,fünf"
okno=Tk()
okno.title('Slovar')
oznaka=Label(okno,text='Vnesi besedo')
oznaka.pack()
a=Entry(okno)
a.pack()
b=StringVar()
c=StringVar()
opti1=OptionMenu(okno, b, 'slo', 'ang', 'nem')
opti2=OptionMenu(okno, c, 'slo', 'ang', 'nem')
opti1.pack(fill=X)
opti2.pack(fill=X)
b.set('nem')
c.set('ang')
pret=Button(okno,text='Pretvori',command=pretvori)
pret.pack()
s=StringVar()
d=Label(okno,textvariable=s)
d.pack()
okno.mainloop()
Program mi izriše okno za vnos ter pretvorbe potem pa nevem kak naj naredim, da bo vedel kaj more prevest. Ker zaj če vpišem besedo napiše da ni definirano
j=("slo", "ang", "nem")
def pretvori():
if(b.get()==j[0] and c.get()==j[1]):
slo_v_ang()
if(b.get()==j[0] and c.get()==j[2]):
slo_v_nem()
if(b.get()==j[1] and c.get()==j[0]):
ang_v_slo()
if(b.get()==j[1] and c.get()==j[2]):
ang_v_nem()
if(b.get()==j[2] and c.get()==j[0]):
nem_v_slo()
if(b.get()==j[2] and c.get()==j[1]):
nem_v_ang()
slo="ena,dva,tri,štiri,pet"
ang="one,two,three,four,five"
nem="eins,zwei,drei,vier,fünf"
okno=Tk()
okno.title('Slovar')
oznaka=Label(okno,text='Vnesi besedo')
oznaka.pack()
a=Entry(okno)
a.pack()
b=StringVar()
c=StringVar()
opti1=OptionMenu(okno, b, 'slo', 'ang', 'nem')
opti2=OptionMenu(okno, c, 'slo', 'ang', 'nem')
opti1.pack(fill=X)
opti2.pack(fill=X)
b.set('nem')
c.set('ang')
pret=Button(okno,text='Pretvori',command=pretvori)
pret.pack()
s=StringVar()
d=Label(okno,textvariable=s)
d.pack()
okno.mainloop()
Program mi izriše okno za vnos ter pretvorbe potem pa nevem kak naj naredim, da bo vedel kaj more prevest. Ker zaj če vpišem besedo napiše da ni definirano
technolog ::
Ne da se mi razlagat, ti pa priložim kodo, kako bi se jaz lotla. Bi mogla bit sama po sebi dovolj razumljiva, če ne pa vprašaj:
jeziki=['slo','eng','nem']
besede=[]
besede.append(['ena', 'dva', 'tri'])
besede.append(['one', 'two', 'three'])
besede.append(['eins', 'zwei', 'drei'])
iskana_beseda='tri'
prevedi_iz='slo'
prevedi_v='eng'
print besede[jeziki.index(prevedi_v)][besede[jeziki.index(prevedi_iz)].index(iskana_beseda)]
Preveri in če sporoči če dela, mal sm že out iz pythona :)
Pregledno, vendar počasno. Iskanje v O(n), ki bo pa lahko bilo O(log n) ali celo O(1).
Valex86 ::
http://www.facebook.com/photo.php?fbid=...
To moram sprogramirati v pythonu tkinter modul.
Vsak nasvet pride prav!
hvala
To moram sprogramirati v pythonu tkinter modul.
Vsak nasvet pride prav!
hvala
Zgodovina sprememb…
- spremenil: Valex86 ()
FrEaKmAn ::
tuki je par dobrih primerov za delo
http://www.ittc.ku.edu/~niehaus/classes...
začni in pa javi ko se ti zalomi...
http://www.ittc.ku.edu/~niehaus/classes...
začni in pa javi ko se ti zalomi...
Valex86 ::
import wx import time import sys,traceback from string import strip import data # AppTitle = 'Slovar2012' iSlovar=0 class frmInsert_Slovar(wx.Frame): def __init__(self, caller_frmInsert, title=""): wx.Frame.__init__(self, None, -1, '', style = wx.DEFAULT_FRAME_STYLE^(wx.RESIZE_BORDER|wx.MINIMIZE_BOX|wx.MAXIMIZE_BOX)) self.caller = caller_frmInsert self.Bind(wx.EVT_CLOSE, self.OnExit) panel = wx.Panel(self) #Widgets #vnos nove self.stA = wx.StaticText(panel, wx.ID_ANY, 'Angleška beseda') self.txA = wx.TextCtrl(panel, wx.ID_ANY, "",size=(100, -1)) self.txA.Bind(wx.EVT_TEXT, self.OnUpperCaseText) self.stS = wx.StaticText(panel, wx.ID_ANY, 'Slovenska beseda') self.txS = wx.TextCtrl(panel, wx.ID_ANY, "",size=(100, -1)) self.txS.Bind(wx.EVT_TEXT, self.OnUpperCaseText) self.StaticSizer = wx.StaticBox(panel,wx.ID_ANY,"") self.bntSave = wx.Button(panel, wx.ID_ANY, "&Shrani") self.bntSave.SetToolTipString('Shrani!') self.Bind(wx.EVT_BUTTON, self.OnSave, self.bntSave) self.bntClose = wx.Button(panel, wx.ID_ANY, "&Zapri") self.bntClose.SetToolTipString('Zapri!') self.Bind(wx.EVT_BUTTON, self.OnExit, self.bntClose) #Sizers mainSizer = wx.BoxSizer(wx.HORIZONTAL) textSizer = wx.FlexGridSizer(cols=2, hgap=5, vgap=5) buttonSizer = wx.StaticBoxSizer(self.StaticSizer,wx.VERTICAL) #Assign widgets to sizers #buttonSizer textSizer.Add(self.stA, 0) textSizer.Add(self.txA, 0) textSizer.Add(self.stS, 0) textSizer.Add(self.txS, 0) #buttonSizer buttonSizer.Add(self.bntSave) buttonSizer.Add((5,5),-1) buttonSizer.Add(self.bntClose) #Assign to mainSizer the other sizers. mainSizer.Add(textSizer, 0,wx.ALL, 10) mainSizer.Add(buttonSizer, 0,wx.ALL, 10) #Assign to panel the mainSizer panel.SetSizer(mainSizer) mainSizer.Fit(self) mainSizer.SetSizeHints(self) def FieldsControl(self): #če ni oboje izpolnjeno if len(self.txA.GetValue())==0: wx.MessageBox("Nekaj manjka!", AppTitle, wx.OK|wx.ICON_INFORMATION) self.txA.SetFocus() return 0 elif len(self.txS.GetValue())==0: wx.MessageBox("Manjka!", AppTitle, wx.OK|wx.ICON_INFORMATION) return 0 def OnSave(self,event): if self.FieldsControl()==0: return else: sMessage = "Shranim besedo?" dlgAsk = wx.MessageDialog(None,sMessage, AppTitle,wx.YES_NO|wx.ICON_QUESTION) retCode = dlgAsk.ShowModal() if (retCode == wx.ID_YES): sA = str(self.txA.GetValue()) sA =''.join(sA.strip().split()) sS = str(self.txS.GetValue()) sS =''.join(sS.strip().split()) #pripravim, nardim bazo InsertParameters = (sA,sS) sSQL="INSERT INTO Slovar (Angleška,Slovenska) VALUES (?,?)" #vnesem parametre v sql bazo data.OnQueryUpdate(sSQL,InsertParameters) self.caller.OnUpdateList() wx.MessageBox("Vstavitev nove besede!", AppTitle, wx.OK|wx.ICON_INFORMATION) elif (retCode == wx.ID_NO): wx.MessageBox("Vstavljanje preklicano!", AppTitle, wx.OK|wx.ICON_INFORMATION) dlgAsk.Destroy() self.OnExit(self) def OnUpperCaseText(self, event): wdgControl = event.GetEventObject() retValue = wdgControl.GetValue() upValue = retValue.upper() if retValue <> upValue: wdgControl.SetValue(upValue) wdgControl.SetInsertionPointEnd() event.Skip() def OnExit(self,event): self.Destroy() class frmUpdate_Slovar(wx.Frame): def __init__(self, caller_frmUpdate, title=""): wx.Frame.__init__(self, None, -1, title, size=(400,200)) self.caller = caller_frmUpdate #nastavitev nekaj lastnosti okvirja #self.SetIcon(wx.Icon("myicon.ico",wx.BITMAP_TYPE_ICO)) self.Bind(wx.EVT_CLOSE, self.OnExit) panel = wx.Panel(self) #Widgets za stolpce self.stBesedaID = wx.StaticText(panel, wx.ID_ANY, 'IDBeseda') #številke self.txBesedaID = wx.TextCtrl(panel, wx.ID_ANY, "",size=(50, -1),style=wx.TE_READONLY|wx.TE_CENTRE) self.txBesedaID.SetBackgroundColour('white') self.stA = wx.StaticText(panel, wx.ID_ANY, 'Angleška beseda') self.txA = wx.TextCtrl(panel, wx.ID_ANY, "",size=(100, -1)) self.txA.Bind(wx.EVT_TEXT, self.OnUpperCaseText) self.stS = wx.StaticText(panel, wx.ID_ANY, 'Slovenska beseda') self.txS = wx.TextCtrl(panel, wx.ID_ANY, "",size=(100, -1)) self.txS.Bind(wx.EVT_TEXT, self.OnUpperCaseText) self.StaticSizer = wx.StaticBox(panel,wx.ID_ANY,"") self.bntSave = wx.Button(panel, wx.ID_ANY, "&Shrani") self.bntSave.SetToolTipString('Shrani!') self.Bind(wx.EVT_BUTTON, self.OnSave, self.bntSave) self.bntClose = wx.Button(panel, wx.ID_ANY, "&Zapri") self.bntClose.SetToolTipString('Zapri!') self.Bind(wx.EVT_BUTTON, self.OnExit, self.bntClose) #Sizers mainSizer = wx.BoxSizer(wx.HORIZONTAL) textSizer = wx.FlexGridSizer(cols=2, hgap=5, vgap=5) buttonSizer = wx.StaticBoxSizer(self.StaticSizer,wx.VERTICAL) #zvežem #textSizer textSizer.Add(self.stBesedaID, 0) textSizer.Add(self.txBesedaID, 0) textSizer.Add(self.stA, 0) textSizer.Add(self.txA, 0) textSizer.Add(self.stS, 0) textSizer.Add(self.txS, 0) #buttonSizer buttonSizer.Add(self.bntSave) buttonSizer.Add((5,5),-1) buttonSizer.Add(self.bntClose) #pripišem mainSizer ostale mainSizer.Add(textSizer, 0,wx.ALL, 10) mainSizer.Add(buttonSizer, 0,wx.ALL, 10) #prip panel mainSizer panel.SetSizer(mainSizer) mainSizer.Fit(self) mainSizer.SetSizeHints(self) def FieldsControl(self): if len(self.txA.GetValue())==0: wx.MessageBox("PRAZNO POLJE!", AppTitle, wx.OK|wx.ICON_INFORMATION) self.txA.SetFocus() return 0 elif len(self.txSlovenska.GetValue())==0: wx.MessageBox("PRAZNO POLJE!", AppTitle, wx.OK|wx.ICON_INFORMATION) return 0 def OnSave(self,event): if self.FieldsControl()==0: return else: sMessage = "Shranim spremenjene podatke?" dlgAsk = wx.MessageDialog(None,sMessage, AppTitle,wx.YES_NO|wx.ICON_QUESTION) retCode = dlgAsk.ShowModal() if (retCode == wx.ID_YES): sBesedaID = str(self.txBesedaID.GetValue()) sA = str(self.txA.GetValue()) sA =''.join(sA.strip().split()) sS = str(self.txS.GetValue()) sS =''.join(sS.strip().split()) UpdateParameters = (sA,sS,sBesedaID) sSQL='UPDATE Slovar SET Angleska = ?,Slovenska = ? WHERE BesedaID=?' #posodobi bazo data.OnQueryUpdate(sSQL,UpdateParameters) self.caller.OnUpdateList() wx.MessageBox("Podatki o besedi posodobljeni!", AppTitle, wx.OK|wx.ICON_INFORMATION) elif (retCode == wx.ID_NO): wx.MessageBox("Preklicano posodabljanje!", AppTitle, wx.OK|wx.ICON_INFORMATION) dlgAsk.Destroy() self.OnExit(self) def OnUpperCaseText(self, event): wdgControl = event.GetEventObject() retValue = wdgControl.GetValue() upValue = retValue.upper() if retValue <> upValue: wdgControl.SetValue(upValue) wdgControl.SetInsertionPointEnd() event.Skip() def OnExit(self,event): self.Destroy() class frmSlovar(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, '',size=(600,400),style = wx.DEFAULT_FRAME_STYLE^(wx.RESIZE_BORDER|wx.MINIMIZE_BOX|wx.MAXIMIZE_BOX)) #nstavitve okvirja self.SetTitle('Angleško slovenski slovar') self.Bind(wx.EVT_CLOSE, self.OnExit) panel = wx.Panel(self) #menu mnuFile = wx.Menu() mnuInfo = wx.Menu() #mnuFile menuitem = mnuFile.Append(-1, "&Izhod", "Zapri!") self.Bind(wx.EVT_MENU, self.OnExit, menuitem) #menu bar menubar = wx.MenuBar() #add nemu voices menubar.Append(mnuFile, "&Datoteka") #menubar.Append(mnuInfo, "I&nfo") self.SetMenuBar(menubar) #Statusbar self.myStatusBar = self.CreateStatusBar(1,wx.ST_SIZEGRIP) self.myStatusBar.SetFieldsCount(2) self.myStatusBar.SetStatusWidths([-8, -4]) self.myStatusBar.SetStatusText('',0) self.myStatusBar.SetStatusText('Slovar2012',1) #Widgets self.stSlovar = wx.StaticText(panel, -1, "Anglesko slovenski slovar") self.lstSlovar = wx.ListCtrl(panel, -1, style=wx.LC_REPORT, size=(300,300),pos=(0,0)) self.lstSlovar.SetToolTipString('S klikom izberi besedo') #Intercept click na wx.ListCtrl self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected,self.lstSlovar) #stolpci self.lstSlovar.InsertColumn(0, 'BesedaID', wx.LIST_AUTOSIZE) self.lstSlovar.InsertColumn(1, 'Angleska', wx.LIST_AUTOSIZE) self.lstSlovar.InsertColumn(2, 'Slovenska', wx.LIST_AUTOSIZE) self.stSearch = wx.StaticText(panel, -1, "IŠČI") self.txSearch = wx.TextCtrl(panel, -1, "",size=(100, -1)) self.txSearch.SetToolTipString('Išči besedo!') self.txSearch.Bind(wx.EVT_TEXT, self.OnUpperCaseText) self.StaticSizer = wx.StaticBox(panel,wx.ID_ANY,"Ukazi") self.bntSearch = wx.Button(panel, -1, "&Išči") self.bntSearch.SetToolTipString('Išči besedo!') self.Bind(wx.EVT_BUTTON, self.OnSearch, self.bntSearch) self.bntClear = wx.Button(panel, -1, "&Izbriši vse") self.bntClear.SetToolTipString('Zbriši iskani tekst!') self.Bind(wx.EVT_BUTTON, self.OnClear, self.bntClear) self.bntShowAll = wx.Button(panel, -1, "&Vse besede") self.bntShowAll.SetToolTipString('Pokaži vse!') self.Bind(wx.EVT_BUTTON, self.OnShowAll, self.bntShowAll) self.bntNew = wx.Button(panel, -1, "&Vnesi novo") self.bntNew.SetToolTipString('Vnesi novo besedo!') self.Bind(wx.EVT_BUTTON, self.OnNew, self.bntNew) self.bntEdit = wx.Button(panel, -1, "&Posodobi") self.bntEdit.SetToolTipString('Posodobi izbrano besedo!') self.Bind(wx.EVT_BUTTON, self.OnEdit, self.bntEdit) self.bntDelete = wx.Button(panel, -1, "&Izbriši") self.bntDelete.SetToolTipString('Izbriši izbrano besedo!') self.Bind(wx.EVT_BUTTON, self.OnDelete, self.bntDelete) self.bntClose = wx.Button(panel, -1, "&Zapri") self.bntClose.SetToolTipString('Zapri dov!') self.Bind(wx.EVT_BUTTON, self.OnExit, self.bntClose) #dobi pod iz baze BesedaData = OnLoadData(self) #poselji wx.ListCtrl for i in BesedaData: index = self.lstSlovar.InsertStringItem(sys.maxint, (strip(str(i[0])))) self.lstSlovar.SetStringItem(index, 1, i[1]) self.lstSlovar.SetStringItem(index, 2, i[2]) #Sizer mainSizer = wx.BoxSizer(wx.HORIZONTAL) textSizer = wx.BoxSizer(wx.VERTICAL) btnSizer = wx.StaticBoxSizer(self.StaticSizer,wx.VERTICAL) #textSizer textSizer.Add(self.stSlovar) textSizer.Add(self.lstSlovar) #btnSizer btnSizer.Add(self.stSearch) btnSizer.Add(self.txSearch) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntSearch,0,wx.ALL,5) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntClear,0,wx.ALL,5) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntShowAll,0,wx.ALL,5) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntNew,0,wx.ALL,5) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntEdit,0,wx.ALL,5) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntDelete,0,wx.ALL,5) btnSizer.Add((5,5),-1) btnSizer.Add(self.bntClose,0,wx.ALL,5) mainSizer.Add(textSizer, 0,wx.ALL, 10) mainSizer.Add(btnSizer, 0,wx.ALL, 10) panel.SetSizer(mainSizer) mainSizer.Fit(self) mainSizer.SetSizeHints(self) #Event handling def OnDelete(self,event): global iSlovar sSQL='DELETE FROM Slovar WHERE BesedaID = ? ' data.OnQueryUpdate(sSQL,iSlovar) self.OnShowAll(self) wx.MessageBox("Zbrisano iz baze", AppTitle, wx.OK|wx.ICON_INFORMATION) def OnUpdateList(self): self.OnShowAll(self) def OnShowAll(self,event): sSQL='SELECT * FROM Slovar WHERE BesedaID LIKE ? ' sSearch = '%' self.OnRetriveData(sSQL,sSearch) self.myStatusBar.SetStatusText('Slovar2012',1) self.OnClear(self) def OnClear(self,event): global iSlovar self.txSearch.Clear() self.txSearch.SetFocus() iSlovar = 0 def OnSearch(self,event): sSearch = str(self.txSearch.GetValue()) #brez presledkov sSearch =''.join(sSearch.strip().split()) #dodaj & simbol za iskanje na silo if sSearch =='%' : wx.MessageBox("prazno!", AppTitle, wx.OK|wx.ICON_INFORMATION) self.txSearch.SetFocus() return else: sSQL='SELECT * FROM Slovar WHERE ?=Angleska' self.OnRetriveData(sSQL,sSearch) def OnRetriveData(self,sSQL,IDParameter): global iSlovar #zbriše vse self.lstSlovar.SetFocus() self.lstSlovar.DeleteAllItems() #pridobi podatke iz data modula BesedaData = data.OnQueryParmeter(sSQL,IDParameter) #poselji listbox if BesedaData: for i in BesedaData: index = self.lstSlovar.InsertStringItem(sys.maxint, (strip(str(i[0])))) self.lstSlovar.SetStringItem(index, 1, (strip(str(i[1])))) self.lstSlovar.SetStringItem(index, 2, (strip(str(i[2])))) else: wx.MessageBox("Ni podatka!", AppTitle, wx.OK|wx.ICON_INFORMATION) def OnEdit(self,event): global iSlovar #It means that we haven't select an employee. if iSlovar ==0: wx.MessageBox("Izberi besedo!", AppTitle, wx.OK|wx.ICON_INFORMATION) return else: sSQL='SELECT * FROM Slovar WHERE BesedaID = ?' self.OnOpenEdit(sSQL,iSlovar) def OnNew(self,event): try: #Create an istance of the Child_Frame self.frmInsert = self.frmInsert = frmInsert_Slovar(caller_frmInsert=self) sTitle = 'Vnesi novo besedo' self.frmInsert.SetTitle(sTitle) self.frmInsert.Show() self.frmInsert.Center() except: sModule = 'Module: slovar.py' sFunction ='Function: OnNew' sParameter ='Input parameter: Nothing ' excValue = 'Exception value:%s ' %(str(sys.exc_value)) excType = 'Exception type:%s ' %(str(sys.exc_type)) logTime = time.localtime(time.time()) FormatlogTime = time.strftime("%d/%m/%Y %H:%M:%S", logTime) sFormatLog = ("Data: %s" % (FormatlogTime)) fLog = open('log.txt','a') sReportException=(sFormatLog,sModule,sFunction,sParameter,excValue,excType) fLog.write(sReportException) fLog.close() wx.MessageBox("Pozor!\n%s\n%s\n%s\n%s\n%s\n%s" % (sModule, sFunction, sParameter, sFormatLog, excValue ,excType), AppTitle, wx.OK|wx.ICON_ERROR) def OnOpenEdit(self,sSQL,sParameter): try: rsSlovar = data.OnQueryParmeter(sSQL,sParameter) self.frmEdit = self.frmEdit = frmUpdate_Slovar(caller_frmUpdate = self) for i in rsSlovar: self.frmEdit.txBesedaID.SetValue(strip(str(i[0]))) self.frmEdit.txKoroska.SetValue(strip(str(i[1]))) self.frmEdit.txSlovenska.SetValue(strip(str(i[2]))) sSlovar =(strip(str(i[1]))) sTitle = 'Izberi besedo: %s' % (sSlovar) self.frmEdit.SetTitle(sTitle) self.frmEdit.Show() self.frmEdit.Center() except: sModule = 'Module: slovar.py' sFunction ='Function: OnOpenEdit' sParameter ='Input parameter: %s ' %(sSQL,sParameter) excValue = 'Exception value:%s ' %(str(sys.exc_value)) excType = 'Exception type:%s ' %(str(sys.exc_type)) logTime = time.localtime(time.time()) FormatlogTime = time.strftime("%d/%m/%Y %H:%M:%S", logTime) sFormatLog = ("Data: %s" % (FormatlogTime)) fLog = open('log.txt','a') sReportException=(sFormatLog,sModule,sFunction,sParameter,excValue,excType) fLog.write(sReportException) fLog.close() wx.MessageBox("Pozor!\n%s\n%s\n%s\n%s\n%s\n%s" % (sModule, sFunction, sParameter, sFormatLog, excValue ,excType), AppTitle, wx.OK|wx.ICON_ERROR) def OnUpperCaseText(self, event): wdgControl = event.GetEventObject() retValue = wdgControl.GetValue() upValue = retValue.upper() if retValue <> upValue: wdgControl.SetValue(upValue) wdgControl.SetInsertionPointEnd() event.Skip() def OnItemSelected(self, event): global iSlovar item = event.GetItem() iSlovar =item.GetText() self.myStatusBar.SetStatusText("Izberi besedo = %s " %(iSlovar),1) def OnExit(self,event): #Ask for exit intChoice = OnClose() if intChoice == 2: self.Destroy() def OnTimer(self, evt): t = time.localtime(time.time()) sbTime = time.strftime("Astral date %d/%m/%Y are %H:%M:%S", t) self.myStatusBar.SetStatusText(sbTime,0) def OnLoadData(self): global iCount try: strSQL='SELECT * FROM Slovar' rsRecordset = data.OnQuery(strSQL) return rsRecordset except: sModule = 'Module: slovar.py' sFunction ='Function: OnLoadData' sParameter ='Input parameter: Nothing' excValue = 'Exception value:%s ' %(str(sys.exc_value)) excType = 'Exception type:%s ' %(str(sys.exc_type)) logTime = time.localtime(time.time()) FormatlogTime = time.strftime("%d/%m/%Y %H:%M:%S", logTime) sFormatLog = ("Data: %s" % (FormatlogTime)) fLog = open('log.txt','a') sReportException=(sFormatLog,sModule,sFunction,sParameter,excValue,excType) fLog.write(sReportException) fLog.close() wx.MessageBox("Pozor!\n%s\n%s\n%s\n%s\n%s\n%s" % (sModule, sFunction, sParameter, sFormatLog, excValue ,excType),AppTitle, wx.OK|wx.ICON_ERROR) def OnClose(): try: ret=wx.MessageBox('Želiš zapreti slovar?', AppTitle, wx.YES_NO |wx.ICON_QUESTION| wx.CENTRE |wx.NO_DEFAULT) return ret except: sModule = 'Module: slovar.py' sFunction ='Function: OnClose' sParameter ='Input parameter: Nothing' excValue = 'Exception value:%s ' %(str(sys.exc_value)) excType = 'Exception type:%s ' %(str(sys.exc_type)) logTime = time.localtime(time.time()) FormatlogTime = time.strftime("%d/%m/%Y %H:%M:%S", logTime) sFormatLog = ("Data: %s" % (FormatlogTime)) fLog = open('log.txt','a') sReportException=(sFormatLog,sModule,sFunction,sParameter,excValue,excType) fLog.write(sReportException) fLog.close() wx.MessageBox("Attention!\n%s\n%s\n%s\n%s\n%s\n%s" % (sModule, sFunction, sParameter, sFormatLog, excValue ,excType),AppTitle, wx.OK|wx.ICON_ERROR) if __name__=='__main__': MyApp = wx.PySimpleApp(redirect=True) frame = frmSlovar() frame.Show(True) frame.Center() MyApp.MainLoop()
Zna kdo to preoblikovat v TKINTER?
Valex86 ::
kakšen nasvet kak spremenit, ker namreč tkitera ne poznam morem pa met nalogo s tkinterom znala sem samo rešit z wx-om.
Valex86 ::
from Tkinter import * class App: def __init__(self,parent): f =Frame(parent) f.pack(padx=15,pady=15) Label(f,text='Vpisi besedo:').pack(side=TOP,padx=10,pady=10) self.entry = Entry(f,text=" ").pack(side=TOP,padx=10,pady=10) self.button = Button(f, text="slo-ang",command=self.prevedi) self.button.pack(side=TOP,padx=10,pady=10) self.button = Button(f, text="ang -slo",command=self.prevedi1).pack(side=TOP,padx=10,pady=10) self.exit = Button(f, text="IZHOD", command=f.quit).pack() def prevedi(self): print "prevod" def prevedi1(self): print "test" root = Tk() root.title('SLOVAR') app = App(root) root.mainloop()
kako naj defibiram gumb, da ko uporabnik zapiše slo besedo da jo prevede v ang in obratno
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | python-rabim pomočOddelek: Programiranje | 2793 (1023) | rnla1973 |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18167 (8915) | black ice |
» | Predstavitev dvojiškega drevesa z seznamomOddelek: Programiranje | 1958 (1558) | ktka |
» | Ruby + Glade ... težaveOddelek: Programiranje | 1621 (1414) | sebatronic |
» | razložitev nekaterij elementov v visual studio 05Oddelek: Programiranje | 2126 (1931) | darkolord |