Foros del Web » Programando para Internet » Python »

Duda sobre wxPython

Estas en el tema de Duda sobre wxPython en el foro de Python en Foros del Web. Bueno mi pregunta es sobre las dimensiones de un Frame, o sea, no se en que posicion va a ir un cuadro de texto, un ...
  #1 (permalink)  
Antiguo 05/03/2013, 17:58
Avatar de cufu8583  
Fecha de Ingreso: enero-2013
Ubicación: North Miami Beach
Mensajes: 24
Antigüedad: 11 años, 10 meses
Puntos: 1
Duda sobre wxPython

Bueno mi pregunta es sobre las dimensiones de un Frame, o sea, no se en que posicion va a ir un cuadro de texto, un boton, por ejemplo tengo un programa donde quiero poner los cuadros de textos porque me salen uno sobre el otro y cuando cambio las posiciones sale uno en una esquina y el otro en otro lado, alguien me podria explicar como hacer para ponerlos en el lugar que yo quiero,

No se como explicarlo pero quizas entiendan mi pregunta.
  #2 (permalink)  
Antiguo 05/03/2013, 18:21
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Duda sobre wxPython

Tal vez puedes empezar por aquí.

http://wiki.wxpython.org/AnotherTutorial
  #3 (permalink)  
Antiguo 05/03/2013, 18:43
Avatar de cufu8583  
Fecha de Ingreso: enero-2013
Ubicación: North Miami Beach
Mensajes: 24
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Duda sobre wxPython

Ese tutorial lo he estado leyendo, ya se como agregar barras de menus, barras de herramientas, lo que se me esta dificultando es el posicionamiento de los botones, o cuadros de textos, por ejempo estaba creando una calculadora de solo sumas(solo probando, nada grande), pues todo bien hasta que ejecute el programa los cuadros donde escribes el numero estaban montados sobre las letras que pregunta el numero a ingresar, no se si me explique bien jajajajajaja.
  #4 (permalink)  
Antiguo 05/03/2013, 18:50
Avatar de cufu8583  
Fecha de Ingreso: enero-2013
Ubicación: North Miami Beach
Mensajes: 24
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Duda sobre wxPython

Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2.  
  3. import wx
  4. import math
  5.  
  6. class Calculadora(wx.Frame):
  7.  
  8.     #posicion de las etiquetas
  9.     LABEL_POSX  = 10
  10.     LABEL_POSX2 = 155
  11.  
  12.     #posicion del textctrl
  13.     TEXTCTRL_POSX = 80
  14.     TEXTCTRL_POSX2 = 220
  15.  
  16.     def __init__(self,parent,id,title):
  17.         wx.Frame.__init__(self,parent,id,title,size=(300,150))
  18.  
  19.         #establecer el color de fondo
  20.         self.SetBackgroundColour(wx.Colour(255,255,255))
  21.  
  22.         #crear los cuadros donde se introducen los Numeros.
  23.         self.a = wx.TextCtrl(self, pos=(Calculadora.TEXTCTRL_POSX,10), size=(60,20))
  24.         self.b = wx.TextCtrl(self, pos=(Calculadora.TEXTCTRL_POSX,35), size=(60,20))
  25.         self.d = wx.TextCtrl(self, pos=(Calculadora.TEXTCTRL_POSX2,10), size=(60,20))
  26.  
  27.         #crear las etiquetas para los textcrtl
  28.         wx.StaticText(self, label='Primer Numero', pos=(Calculadora.LABEL_POSX,10))
  29.         wx.StaticText(self, label='Segundo Numero', pos=(Calculadora.LABEL_POSX,35))
  30.         wx.StaticText(self, label='Respuesta:', pos=(Calculadora.LABEL_POSX2,10))
  31.  
  32.         #crear botón de calcular
  33.         self.btnSumar = wx.Button(self, label='Sumar', pos=(15,85), size=(60, 30))
  34.         self.Bind(wx.EVT_BUTTON, self.ecuacion, self.btnSumar)
  35.         self.btnSalir = wx.Button(self, label='Salir', pos=(80,85), size=(60, 30))
  36.         self.Bind(wx.EVT_BUTTON, self.sal, self.btnSalir)
  37.         self.btnAyuda = wx.Button(self, label='Ayuda', pos=(145,85), size=(60, 30))
  38.         self.Bind(wx.EVT_BUTTON, self.ayud, self.btnAyuda)
  39.         self.btnInfo = wx.Button(self, label='Info', pos=(210,85), size=(60,30))
  40.         self.Bind(wx.EVT_BUTTON, self.inf, self.btnInfo)
  41.         self.a.SetFocus()
  42.         self.Show(True)
  43.  
  44.  
  45.     def ecuacion(self, event):
  46.         try:
  47.             a = int(self.a.GetValue())
  48.             b = int(self.b.GetValue())
  49.             solu = str(a + b)
  50.             self.d.SetValue(solu)
  51.         except:
  52.             self.d.SetValue('Sin solucion')
  53.         wx.MessageBox('Gracias por usar el programa')
  54.  
  55.     def sal(self, event):
  56.         self.Destroy()
  57.  
  58.     def ayud(self, event):
  59.         wx.MessageBox('Introduzca a,b,c respectivamente y presione calcular para obtener las dos soluciones')
  60.  
  61.     def inf(self, event):
  62.          wx.MessageBox('Autor: FGUM')
  63.          wx.MessageBox('Fecha de creacion: 03/03/13')
  64.  
  65. #end class Herr
  66.  
  67. if __name__ == '__main__':
  68.     app = wx.App()
  69.     frame = Calculadora(None,-1,'Sumas')
  70.     frame.Show(True)
  71.     app.MainLoop()

Alli esta el codigo de lo que estaba haciendo pero salen las letras montadas y no puedo hacer que se muevan los cuadros de textos.
  #5 (permalink)  
Antiguo 05/03/2013, 20:26
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Duda sobre wxPython

Código Python:
Ver original
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # generated by wxGlade 0.6.4 on Tue Mar  5 20:17:11 2013
  4.  
  5. import wx
  6.  
  7. # begin wxGlade: extracode
  8. # end wxGlade
  9.  
  10.  
  11. class Calculadora(wx.Frame):
  12.     def __init__(self, *args, **kwds):
  13.         # begin wxGlade: Calculadora.__init__
  14.         kwds["style"] = wx.DEFAULT_FRAME_STYLE
  15.         wx.Frame.__init__(self, *args, **kwds)
  16.         self.label_primero = wx.StaticText(self, -1, u"Primer Número")
  17.         self.text_ctrl_primero = wx.TextCtrl(self, -1, "")
  18.         self.label_segundo = wx.StaticText(self, -1, u"Segundo Número")
  19.         self.text_ctrl_segundo = wx.TextCtrl(self, -1, "")
  20.         self.label_respuesta = wx.StaticText(self, -1, "Resultado")
  21.         self.text_ctrl_respuesta = wx.TextCtrl(self, -1, "")
  22.         self.button_suma = wx.Button(self, -1, "Sumar")
  23.         self.button_salir = wx.Button(self, -1, "Salir")
  24.         self.button_ayuda = wx.Button(self, -1, "Ayuda")
  25.         self.button_info = wx.Button(self, -1, "Info")
  26.  
  27.         self.__set_properties()
  28.         self.__do_layout()
  29.  
  30.         self.Bind(wx.EVT_BUTTON, self.OnSuma, self.button_suma)
  31.         self.Bind(wx.EVT_BUTTON, self.OnSalir, self.button_salir)
  32.         self.Bind(wx.EVT_BUTTON, self.OnAyuda, self.button_ayuda)
  33.         self.Bind(wx.EVT_BUTTON, self.OnInfo, self.button_info)
  34.         # end wxGlade
  35.  
  36.     def __set_properties(self):
  37.         # begin wxGlade: Calculadora.__set_properties
  38.         self.SetTitle("Calculadora")
  39.         self.text_ctrl_primero.SetMinSize((200, 27))
  40.         self.text_ctrl_segundo.SetMinSize((200, 27))
  41.         self.text_ctrl_respuesta.SetMinSize((200, 27))
  42.         # end wxGlade
  43.  
  44.     def __do_layout(self):
  45.         # begin wxGlade: Calculadora.__do_layout
  46.         vsizer = wx.BoxSizer(wx.VERTICAL)
  47.         hsizer = wx.BoxSizer(wx.HORIZONTAL)
  48.         grid_sizer = wx.GridSizer(3, 2, 0, 0)
  49.         grid_sizer.Add(self.label_primero, 0, wx.ALIGN_RIGHT, 0)
  50.         grid_sizer.Add(self.text_ctrl_primero, 0, 0, 0)
  51.         grid_sizer.Add(self.label_segundo, 0, wx.ALIGN_RIGHT, 0)
  52.         grid_sizer.Add(self.text_ctrl_segundo, 0, 0, 0)
  53.         grid_sizer.Add(self.label_respuesta, 0, wx.ALIGN_RIGHT, 0)
  54.         grid_sizer.Add(self.text_ctrl_respuesta, 0, 0, 0)
  55.         vsizer.Add(grid_sizer, 0, wx.EXPAND, 0)
  56.         hsizer.Add(self.button_suma, 0, 0, 0)
  57.         hsizer.Add(self.button_salir, 0, 0, 0)
  58.         hsizer.Add(self.button_ayuda, 0, 0, 0)
  59.         hsizer.Add(self.button_info, 0, 0, 0)
  60.         vsizer.Add(hsizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
  61.         self.SetSizer(vsizer)
  62.         vsizer.Fit(self)
  63.         self.Layout()
  64.         # end wxGlade
  65.  
  66.     def OnSuma(self, event):  # wxGlade: Calculadora.<event_handler>
  67.         a = int(self.text_ctrl_primero.GetValue())
  68.         b = int(self.text_ctrl_segundo.GetValue())
  69.         c = str(a + b)
  70.         self.text_ctrl_respuesta.SetValue(c)
  71.  
  72.  
  73.     def OnSalir(self, event):  # wxGlade: Calculadora.<event_handler>
  74.         self.Destroy()
  75.  
  76.     def OnAyuda(self, event):  # wxGlade: Calculadora.<event_handler>
  77.         wx.MessageBox('Introduzca a,b,c respectivamente y presione calcular para obtener las dos soluciones')
  78.  
  79.     def OnInfo(self, event):  # wxGlade: Calculadora.<event_handler>
  80.         wx.MessageBox('Autor: FGUM\nFecha de creacion: 03/03/13')
  81.  
  82. # end of class Calculadora
  83. if __name__ == "__main__":
  84.     app = wx.PySimpleApp(0)
  85.     wx.InitAllImageHandlers()
  86.     frame = Calculadora(None, -1, "")
  87.     app.SetTopWindow(frame)
  88.     frame.Show()
  89.     app.MainLoop()

Puedes usar herramientas como wxglade o wxformbuilder para hacer tus interfaces gráficas.
  #6 (permalink)  
Antiguo 05/03/2013, 20:36
Avatar de cufu8583  
Fecha de Ingreso: enero-2013
Ubicación: North Miami Beach
Mensajes: 24
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Duda sobre wxPython

Ah ok y cual de las 2 es mejor?, o sea, mas facil o mas potente?
  #7 (permalink)  
Antiguo 05/03/2013, 20:38
Avatar de cufu8583  
Fecha de Ingreso: enero-2013
Ubicación: North Miami Beach
Mensajes: 24
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Duda sobre wxPython

Voy bajar los 2 a ver cual me gusta mas y a cual me adapto mas rapido, gracias y como siempre ayudandones a los mas pero mas novatos.
  #8 (permalink)  
Antiguo 06/03/2013, 13:55
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 10 meses
Puntos: 35
Respuesta: Duda sobre wxPython

Yo uso wxGlade y hasta ahora me resultó bastante cómodo.

Etiquetas: wxpython
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:19.