Topic: [WxPython]Calcolatrice...  (Letto 1727 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline akus85

  • python sapiens
  • *****
  • Post: 505
  • Punti reputazione: 0
    • Mostra profilo
    • BitOverflow
[WxPython]Calcolatrice...
« il: Luglio 17, 2007, 16:53 »
Calcolatrice che ho realizzato con le WxPython  ;)

import wx

class Calcolatrice(wx.Frame):
    def __init__(self,id,parent,title):
        wx.Frame.__init__(self,id,parent,title,size=(128,206),style=wx.DEFAULT_MINIFRAME_STYLE)
       
        self.Display=wx.TextCtrl(self,-1,size=(120,20),style=wx.TEXT_ALIGNMENT_RIGHT|wx.TE_READONLY)
        self.Display.SetValue('')
        self.Risultato=0
       
        self.P_Piu=False
        self.P_Meno=False
        self.P_Per=False
        self.P_Div=False
       
        """ INIZIO_BOTTONI """
        self.Uno=wx.Button(self,-1,"1",pos=(1,20),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Due=wx.Button(self,-1,"2",pos=(30,20),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Tre=wx.Button(self,-1,"3",pos=(59,20),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Piu=wx.Button(self,-1,"+",pos=(88,20),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Quattro=wx.Button(self,-1,"4",pos=(1,50),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Cinque=wx.Button(self,-1,"5",pos=(30,50),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Sei=wx.Button(self,-1,"6",pos=(59,50),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Meno=wx.Button(self,-1,"-",pos=(88,50),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Sette=wx.Button(self,-1,"7",pos=(1,80),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Otto=wx.Button(self,-1,"8",pos=(30,80),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Nove=wx.Button(self,-1,"9",pos=(59,80),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Per=wx.Button(self,-1,"x",pos=(88,80),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Zero=wx.Button(self,-1,"0",pos=(1,110),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Uguale=wx.Button(self,-1,"=",pos=(30,110),size=(60,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Diviso=wx.Button(self,-1,"/",pos=(88,110),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Cancel=wx.Button(self,-1,"C",pos=(1,140),size=(30,30),style=wx.TEXT_ALIGNMENT_CENTER)
        self.Exit=wx.Button(self,-1,"Exit",pos=(30,140),size=(88,30),style=wx.TEXT_ALIGNMENT_CENTER)
        """ FINE_BOTTONI """
        self.Uno.Bind(wx.EVT_BUTTON,self.One,self.Uno)
        self.Due.Bind(wx.EVT_BUTTON,self.Two,self.Due)
        self.Tre.Bind(wx.EVT_BUTTON,self.Three,self.Tre)
        self.Quattro.Bind(wx.EVT_BUTTON,self.Four,self.Quattro)
        self.Cinque.Bind(wx.EVT_BUTTON,self.Five,self.Cinque)
        self.Sei.Bind(wx.EVT_BUTTON,self.Six,self.Sei)
        self.Sette.Bind(wx.EVT_BUTTON,self.Seven,self.Sette)
        self.Otto.Bind(wx.EVT_BUTTON,self.Eight,self.Otto)
        self.Nove.Bind(wx.EVT_BUTTON,self.Nine,self.Nove)
        self.Zero.Bind(wx.EVT_BUTTON,self.Zer,self.Zero)
        self.Piu.Bind(wx.EVT_BUTTON,self.Plus,self.Piu)
        self.Meno.Bind(wx.EVT_BUTTON,self.Men,self.Meno)
        self.Per.Bind(wx.EVT_BUTTON,self.For,self.Per)
        self.Diviso.Bind(wx.EVT_BUTTON,self.Div,self.Diviso)
        self.Uguale.Bind(wx.EVT_BUTTON,self.Equal,self.Uguale)
        self.Cancel.Bind(wx.EVT_BUTTON,self.Canc,self.Cancel)
        self.Exit.Bind(wx.EVT_BUTTON,self.Esci,self.Exit)
       
       


               
        self.Show()

       
    def One(self,event):
        self.Display.SetValue(self.Display.GetValue()+'1')
    def Two(self,event):
        self.Display.SetValue(self.Display.GetValue()+'2')
    def Three(self,event):
        self.Display.SetValue(self.Display.GetValue()+'3')
    def Four(self,event):
        self.Display.SetValue(self.Display.GetValue()+'4')
    def Five(self,event):
        self.Display.SetValue(self.Display.GetValue()+'5')
    def Six(self,event):
        self.Display.SetValue(self.Display.GetValue()+'6')
    def Seven(self,event):
        self.Display.SetValue(self.Display.GetValue()+'7')
    def Eight(self,event):
        self.Display.SetValue(self.Display.GetValue()+'8')
    def Nine(self,event):
        self.Display.SetValue(self.Display.GetValue()+'9')
    def Zer(self,event):
        self.Display.SetValue(self.Display.GetValue()+'0')
    def Plus(self,event):
        self.Risultato=self.Risultato+int(self.Display.GetValue())
        self.Display.SetValue('')
        self.P_Piu=True
    def Men(self,event):
        self.Risultato=self.Risultato+int(self.Display.GetValue())
        self.Display.SetValue('')
        self.P_Meno=True
    def For(self,event):
        self.Risultato=self.Risultato+int(self.Display.GetValue())
        self.Display.SetValue('')
        self.P_Per=True
    def Div(self,event):
        self.Risultato=self.Risultato+int(self.Display.GetValue())
        self.Display.SetValue('')
        self.P_Div=True



       
       
    def Equal(self,event):
        if (self.P_Div==False)and(self.P_Meno==False)and(self.P_Per==False)and(self.P_Piu==True):
            self.Risultato=self.Risultato+int(self.Display.GetValue())
            self.Display.SetValue(str(self.Risultato))
        elif(self.P_Div==False)and(self.P_Meno==True)and(self.P_Per==False)and(self.P_Piu==False):
            self.Risultato=self.Risultato-int(self.Display.GetValue())
            self.Display.SetValue(str(self.Risultato))
        elif(self.P_Div==False)and(self.P_Meno==False)and(self.P_Per==True)and(self.P_Piu==False):
            self.Risultato=self.Risultato*int(self.Display.GetValue())
            self.Display.SetValue(str(self.Risultato))
        elif(self.P_Div==True)and(self.P_Meno==False)and(self.P_Per==False)and(self.P_Piu==False):
            self.Risultato=self.Risultato/int(self.Display.GetValue())
            self.Display.SetValue(str(self.Risultato))
           
    def Canc(self,event):
        self.Display.SetValue('')
        self.P_Piu=False
        self.P_Meno=False
        self.P_Per=False
        self.P_Div=False
        self.Risultato=0

       
    def Esci(self,event):
        self.Destroy()


app=wx.PySimpleApp()
frame=Calcolatrice(None,-1,'Calcolatrice')
frame.Show()
app.MainLoop()

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: [WxPython]Calcolatrice...
« Risposta #1 il: Luglio 17, 2007, 17:55 »
Non è male, ma ricordati che nel forum c'è un mezzo cieco ( io )  :) ...quindi ti sarei grato se fosse un pochino più grande  ;( 

Ti consiglierei comunque di aggiungere questa riga all'inizio del file:

from __future__ import division

Offline manzo

  • python neanderthalensis
  • *
  • moderatore
  • Post: 478
  • Punti reputazione: 1
    • Mostra profilo
Re: [WxPython]Calcolatrice...
« Risposta #2 il: Luglio 18, 2007, 17:54 »
...quindi ti sarei grato se fosse un pochino più grande  ;( 

già... tra l'altro usando posizioni fisse se ridimensioni la finestra il bordo si allarga, ma i bottoni rimangono fermi al loro posto :O

quando ho un po' di tempo provo ad usare il wx.RowColSizer ...


Offline akus85

  • python sapiens
  • *****
  • Post: 505
  • Punti reputazione: 0
    • Mostra profilo
    • BitOverflow
Re: [WxPython]Calcolatrice...
« Risposta #3 il: Luglio 19, 2007, 09:10 »
L'avevo progettata cosi piccola in modo da non occupare tantissimo sullo schermo,cosi da essere utilizzata mentre sono aperte altre finestre,rimanendo sempre in primo piano..comunque puo essere sempre modificata a seconda delle proprie esigenze  :ok:  :D

Offline necrosis

  • python erectus
  • ***
  • Post: 135
  • Punti reputazione: 0
  • www.homelinux.it
    • Mostra profilo
    • Homelinux
Re: [WxPython]Calcolatrice...
« Risposta #4 il: Luglio 20, 2007, 12:57 »
forse mi mancano le wx...
root@marco-desktop:/home/marco/Desktop# python calc.py
Traceback (most recent call last):
  File "calc.py", line 1, in <module>
    import wx
ImportError: No module named wx
root@marco-desktop:/home/marco/Desktop#
[code]

Se è così dove le trovo e come le installo?

Ciao ciao
necrosis
[/code]

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: [WxPython]Calcolatrice...
« Risposta #5 il: Luglio 20, 2007, 13:02 »
Citazione
Se è così dove le trovo e come le installo?

Ciao :)

Le trovi qui: WxPython/download

Offline necrosis

  • python erectus
  • ***
  • Post: 135
  • Punti reputazione: 0
  • www.homelinux.it
    • Mostra profilo
    • Homelinux
Re: [WxPython]Calcolatrice...
« Risposta #6 il: Luglio 20, 2007, 15:17 »
il mio fedele apt-get ha risolto tutto  :) :angel:


PS: sn un po bruttine queste faccine...

Offline Nadriel

  • python unicellularis
  • *
  • Post: 7
  • Punti reputazione: 0
    • Mostra profilo
Re: [WxPython]Calcolatrice...
« Risposta #7 il: Luglio 22, 2007, 10:57 »
come si kiama il pakketto?

ps. a me piacciono le faccine  8)