» »

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

PromeuZ ::

<!-- https://pisalnik.wordpress.com -->

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 ::

<!-- 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

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

FrEaKmAn ::

a se men samo zdi al tukaj velik del kode manjka? npr

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:


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 ::

kam pa naj v to kodo vstavim tkinter

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

technolog ::

x3ca je izjavil:

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

Adam7 ::

Obstaja kakšen slovenski vodič za Python? skoraj nič ne najdem.

FrEaKmAn ::

Python za programerje od prof.Demšarja

http://file.si/public/viewset/73195

imagodei ::

To te bo profesor vesel.
- Hoc est qui sumus -

FrEaKmAn ::

ne razumem...

Valex86 ::

http://www.facebook.com/photo.php?fbid=...

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...

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?

FrEaKmAn ::

vsekakor, samo je kr nekaj dela.. ti ne bo nekdo kr šou malo to delat kar tako...

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

python-rabim pomoč

Oddelek: Programiranje
162660 (890) rnla1973
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317190 (7938) black ice
»

Predstavitev dvojiškega drevesa z seznamom

Oddelek: Programiranje
141763 (1363) ktka
»

Ruby + Glade ... težave

Oddelek: Programiranje
91501 (1294) sebatronic
»

razložitev nekaterij elementov v visual studio 05

Oddelek: Programiranje
71983 (1788) darkolord

Več podobnih tem