Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Wxpython: Realmente compatible con (Linux,Windows,Mac)

Estas en el tema de Wxpython: Realmente compatible con (Linux,Windows,Mac) en el foro de Python en Foros del Web. Hola buenas tardes, pues bien estoy empezando con wxpython y lo poco que he avanzado me ha gustado mucho la manera de programar lo ordenado ...
  #1 (permalink)  
Antiguo 08/03/2013, 13:28
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 2 meses
Puntos: 3
Wxpython: Realmente compatible con (Linux,Windows,Mac)

Hola buenas tardes, pues bien estoy empezando con wxpython y lo poco que he avanzado me ha gustado mucho la manera de programar lo ordenado del código y esas cosas que en otros lenguajes no son tan importantes... bien todo bien hasta aquí pero realice una simple ventana(ver código aquí) que en GNU/Linux corre muy bien pero al correrlo en una maquina con windows 7 (python 2.7, wxpython) no me muestra el panel que contiene los widgets y estos últimos los encima todos.

Entonces mi pregunta es realmente es compatible, o tengo que agregar cierta clase o tengo que cuidar ciertos parámetros, así que recurro a ustedes que ya tienen mas tiempo utilizando wxpython.

Todo esto a raiz de un proyecto que pienso realizar con wxpython y la idea es que sea portable especialmente entre linux y windows.

Me gustaría leer sus comentarios y experiencias, de ante mano muchas gracias.
  #2 (permalink)  
Antiguo 12/03/2013, 19:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Lo que pasa es que tienes que ser cuidadoso cuando trabajas con wxpython.

Por ejemplo en tu ejemplo, hay cosas en el panel y otras cosas en el frame, cuando todo debería de estar en el panel. Esto es importante no solamente para wx si no para cualquier otro framework de GUI en cualquier otra plataforma.

Código Python:
Ver original
  1. import wx
  2.  
  3. class MyPanel(wx.Panel):
  4.     def __init__(self, *args, **kwargs):
  5.         kwargs['style'] = wx.TAB_TRAVERSAL
  6.         wx.Panel.__init__(self, *args, **kwargs)
  7.         vbox = wx.BoxSizer(wx.VERTICAL)
  8.        
  9.         hbox = wx.BoxSizer(wx.HORIZONTAL)
  10.         st1 = wx.StaticText(self, -1, label='Nombre: ')  
  11.         self.tc1 = wx.TextCtrl(self, -1, size=(100, -1))
  12.  
  13.         self.tc1.SetFocus()
  14.  
  15.         hbox.Add(st1)
  16.         hbox.Add(self.tc1, flag = wx.LEFT, border = 10)
  17.         vbox.Add(hbox, flag=wx.LEFT | wx.TOP, border=40)
  18.         vbox.Add((-1, 10))
  19.  
  20.         hbox2 = wx.BoxSizer(wx.HORIZONTAL)
  21.         st2 = wx.StaticText(self, -1, label=u"Nombre 2: ")
  22.         self.tc2 = wx.TextCtrl(self, -1, size=(100,-1))
  23.         hbox2.Add(st2)
  24.         hbox2.Add(self.tc2, flag=wx.LEFT, border=25)
  25.         vbox.Add(hbox2, flag=wx.LEFT | wx.TOP, border=40)
  26.         vbox.Add((-1,10))  
  27.    
  28.         hbox3 = wx.BoxSizer(wx.HORIZONTAL)
  29.         st3 = wx.StaticText(self, -1, label=u"Nombre 3: ")
  30.         self.tc3 = wx.TextCtrl(self, -1, size=(100, -1))
  31.         hbox3.Add(st3)
  32.         hbox3.Add(self.tc3, flag=wx.LEFT, border=20)
  33.         vbox.Add(hbox3, flag=wx.LEFT | wx.TOP | wx.BOTTOM, border=40)
  34.         vbox.Add((-1,10))
  35.      
  36.         self.SetSizer(vbox)
  37.  
  38.         self.tc1.MoveAfterInTabOrder(self.tc3)
  39.         self.tc2.MoveAfterInTabOrder(self.tc1)
  40.         self.tc3.MoveAfterInTabOrder(self.tc2)
  41.        
  42.  
  43. class MyFrame(wx.Frame):
  44.     def __init__(self):
  45.         wx.Frame.__init__(self, None, wx.ID_ANY,
  46.                           "Foco", size=(300, 400))  
  47.         self.InitUI()
  48.         self.Centre()
  49.         self.Show()
  50.  
  51.     def InitUI(self):
  52.         panel = MyPanel(self, style=wx.TAB_TRAVERSAL)
  53.  
  54.        
  55.  
  56. if __name__ == "__main__":
  57.     app = wx.App(False)
  58.     frame = MyFrame()
  59.     app.MainLoop()
  #3 (permalink)  
Antiguo 12/03/2013, 21:42
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Cita:
Iniciado por razpeitia Ver Mensaje
Lo que pasa es que tienes que ser cuidadoso cuando trabajas con wxpython.

Por ejemplo en tu ejemplo, hay cosas en el panel y otras cosas en el frame, cuando todo debería de estar en el panel. Esto es importante no solamente para wx si no para cualquier otro framework de GUI en cualquier otra plataforma.
Nuevamente gracias, ya cheque el código y tendré en cuenta los detalles que me comentas, seguiré un poco haciendo pequeños ejemplos para familiarizarme con wxpython, y se irán haciendo cada vez mas grandes hasta llegar a desarrollar una aplicación compatible con Win y Linux principalmente medianamente grande, al tener en cuenta las observaciones que me comentas en tu respuesta garantizaría de cierta manera la correcta visualización entre plataformas (claro con ciertos detalles me imagino, no creo que sea 100% portable).

Por último una pregunta un poco fuera del tópico principal del hilo pero que me interesa conocer tu opinión, ahora mismo vengo haciendo todo a mano (desde gEdit) y así me gustaría continuar para ir conociendo mejor el código, pero, me recomiendas seguir así o es bueno voltear a ver ayudas como wxGlade en cuestión visual?.

De ante mano muchas gracias, saludos.
  #4 (permalink)  
Antiguo 13/03/2013, 01:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Como la mayoría de mis recomendaciones cuando me piden que es "mejor".

Lo que te recomiendo es checar ambas opciones, explorar wxglade y explorar hacerlo a mano.

En teoría lo recomendable es usar un editor de GUI para no hacer todo el código y tener separado la apariencia gráfica de la lógica del programa.

Pero lo "mejor" es lo que se te acomode mas a ti.
  #5 (permalink)  
Antiguo 17/04/2013, 10:43
 
Fecha de Ingreso: enero-2013
Mensajes: 30
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Hola, escribo en este tema porque creo que es el más apropiado para mi duda. Como sabrán algunos lectores de este foro tengo una aplicación entre manos pero soy nuevo en esto de los módulos de Python.

El caso es que estoy intentando hacer una aplicación que lea desde un KML y lo exporte a un TXT. La aplicación ya está hecha, lo único que me falta por hacer es incluir una interfaz amigable para el usuario, ya que las generaciones de clientes de hoy en día no están ni mucho menos acostumbradas a la línea de comandos.

He estado mirándome la documentación de wxPython y me ha gustado cómo funciona. Fácil, rápido y para toda la familia como diría [URL="http://sonriecomosiloentendieses.files.wordpress.com/2010/05/ramonchu.jpg"]Ramonchu[/URL]. El problema viene cuando tengo que hacer el import.

Resulta que tengo un mac y me estoy dando cuenta de que este maldito SO es una p*tada a la hora de hacer cosas porque todo se lo oculta al usuario. El caso es que en la página oficial de wxPython hay un instalador para mac, pero no sé dónde demonios lo instala que cuando escribo desde la línea de comandos, me devuelve este error:

Código:
$ python
Python 2.7.4 (v2.7.4:026ee0057e2d, Apr  6 2013, 11:43:10) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named wx
>>>
Sin embargo desde IDLE me lo acepta sin problema. ¿Alguna idea de qué puede estar pasando? Todo lo que he encontrado por internet me parece inconcluso y/o más liante.

Gracias de antemano y ojalá este post no se pierda en el olvido ya que he visto que el tema tiene un mes y pico de antigüedad.
__________________
Hello World!
  #6 (permalink)  
Antiguo 17/04/2013, 10:55
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Intenta con este.
http://downloads.sourceforge.net/wxp...ocoa-py2.7.dmg
  #7 (permalink)  
Antiguo 18/04/2013, 06:09
 
Fecha de Ingreso: enero-2013
Mensajes: 30
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Wxpython: Realmente compatible con (Linux,Windows,Mac)

Genial Razpe! Así sí funciona. Da gusto preguntar cosas en este foro! :D

Sois cojonudos chicos!
__________________
Hello World!

Etiquetas: linux, mac, windows, 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 23:29.