Foros del Web » Programando para Internet » Python »

problema llamar clase

Estas en el tema de problema llamar clase en el foro de Python en Foros del Web. Hola chicos sé que quizas sea un noob con esta pregunta pero porque no me muestra la clase Frame2? tan solo al llamarla se desaparece.. ...
  #1 (permalink)  
Antiguo 13/10/2011, 13:51
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 11 meses
Puntos: 0
problema llamar clase

Hola chicos sé que quizas sea un noob con esta pregunta pero porque no me muestra la clase Frame2?

tan solo al llamarla se desaparece..

quizas sea el cansancio pero no veo el error :( disculpame

aqui el codigo

Código Python:
Ver original
  1. # -*- coding: cp1252 -*-
  2. #!usr/bin/python
  3. # prueba.py
  4. import wx
  5.  
  6. class Frame2(wx.Frame):
  7.     def __init__(self, parent, id, title):
  8.        
  9.         wx.Frame.__init__(self, parent, id, title, size=(400,400))
  10.         panel = wx.Panel(self, -1)
  11.         self.Show()
  12.  
  13.  
  14. class MyFrame(wx.Frame):
  15.     def __init__(self, parent, id, title):
  16.        
  17.         wx.Frame.__init__(self, parent, id, title)
  18.         panel = wx.Panel(self, -1)
  19.         #Textos estaticos
  20.         usuario = wx.StaticText(panel, -1, "Usuario:", pos = (130,100))
  21.         password = wx.StaticText(panel, -1, "Contraseña:", pos = (110,150))
  22.         #Cajas de texto
  23.         c_usuario = wx.TextCtrl(panel, -1, "", pos = (170,100))
  24.         c_pass = wx.TextCtrl(panel, -1, "", pos = (170,150), style = wx.PASSWORD)
  25.         #Botones
  26.         cerrar = wx.Button(panel, -1, "Cerrar", pos = (250,300))
  27.         aceptar = wx.Button(panel, -1, "Aceptar", pos = (150,300))
  28.         nuevo = wx.Button(panel, -1, "Nuevo", pos =(50,300))
  29.         self.Bind(wx.EVT_BUTTON, self.OnNuevo)
  30.         self.Bind(wx.EVT_BUTTON, self.OnCerrar)
  31.         self.Centre()
  32.         self.Show()
  33.  
  34.     def OnNuevo(self, event):
  35.        
  36.         frame = Frame2(self)
  37.         frame.Show()
  38.  
  39.        
  40.     def OnCerrar(self, event):
  41.         self.Destroy()
  42.  
  43.  
  44. app = wx.App()
  45. MyFrame(None, -1, "Titulo")
  46. app.MainLoop()

espero con gusto sus respuesta

saludOS
  #2 (permalink)  
Antiguo 13/10/2011, 14:06
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: problema llamar clase

Lamento hacer el post..

luego de leer mucho pero mucho el codigo era un simple error ya lo solucione

Código Python:
Ver original
  1. # -*- coding: cp1252 -*-
  2. #!usr/bin/python
  3. # prueba.py
  4. import wx
  5.  
  6. class Frame2(wx.Frame):
  7.     def __init__(self, parent):
  8.         self.padre = parent
  9.         wx.Frame.__init__(self, None, -1, "Titulo")
  10.         panel = wx.Panel(self, -1)
  11.        
  12.  
  13.  
  14. class MyFrame(wx.Frame):
  15.     def __init__(self, parent, id, title):
  16.        
  17.         wx.Frame.__init__(self, parent, id, title)
  18.         panel = wx.Panel(self, -1)
  19.         #Textos estaticos
  20.         usuario = wx.StaticText(panel, -1, "Usuario:", pos = (130,100))
  21.         password = wx.StaticText(panel, -1, "Contraseña:", pos = (110,150))
  22.         #Cajas de texto
  23.         c_usuario = wx.TextCtrl(panel, -1, "", pos = (170,100))
  24.         c_pass = wx.TextCtrl(panel, -1, "", pos = (170,150), style = wx.PASSWORD)
  25.         #Botones
  26.         cerrar = wx.Button(panel, -1, "Cerrar", pos = (250,300))
  27.         aceptar = wx.Button(panel, -1, "Aceptar", pos = (150,300))
  28.         nuevo = wx.Button(panel, -1, "Nuevo", pos =(50,300))
  29.         nuevo.Bind(wx.EVT_BUTTON, self.OnNuevo)
  30.         cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar)
  31.         self.Centre()
  32.         self.Show()
  33.        
  34.  
  35.     def OnNuevo(self, event):
  36.         frame = Frame2(self)
  37.         frame.Show()
  38.  
  39.        
  40.     def OnCerrar(self, event):
  41.         self.Destroy()
  42.  
  43.  
  44. app = wx.PySimpleApp()
  45. MyFrame(None, -1, "Titulo")
  46. app.MainLoop()
  #3 (permalink)  
Antiguo 13/10/2011, 15:00
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: problema llamar clase

ando tratando de hacer un login con base de datos y entrada de usuarios

de todos modos colocare el codigo para que no sea en vano el post que aun no esta construido por si alguien tiene dudas en cuando abrir varios frames.. ya que mucha informacion no vi en google

todavia me falta mucho

Código Python:
Ver original
  1. # -*- coding: cp1252 -*-
  2. #!usr/bin/python
  3. # prueba.py
  4. import wx
  5.  
  6. class Frame3(wx.Frame):
  7.     #Este frame debería de ser la ventana al poder pasar la ventana de login
  8.     def __init__(self, parent):
  9.         self.padre = parent
  10.         wx.Frame.__init__(self, None, -1, "Progrma de Prueba")
  11.         panel = wx.Panel(self, -1)
  12.         prueba = wx.StaticText(panel, -1, "Prueba", pos = (300,200))
  13.  
  14. class Frame2(wx.Frame):
  15.     #Frame de Creacion de USuarios Nuevos Falta Conexion  a Bases de Datos
  16.     def __init__(self, parent):
  17.         self.padre = parent
  18.         wx.Frame.__init__(self, None, -1, "Creación de Usuarios")
  19.         panel = wx.Panel(self, -1)
  20.         #textos estatict
  21.         usuario = wx.StaticText(panel, -1, "Ingrese un nuevo usuario:", pos =(60,150))
  22.         clave = wx.StaticText(panel, -1, "Ingrese su nueva Contraseña:", pos = (40,200))
  23.         cclave = wx.StaticText(panel, -1, "Confirme su Contraseña:", pos = (70,250))
  24.         #cajas de textos
  25.         self.c_usuario = wx.TextCtrl(panel, -1, "", pos = (200,150))
  26.         self.c_clave = wx.TextCtrl(panel, -1, "", pos = (200,200), style = wx.PASSWORD)
  27.         self.c_cclave = wx.TextCtrl(panel, -1, "", pos = (200,250), style = wx.PASSWORD)
  28.         #Botones
  29.         guardar = wx.Button(panel, -1, "Guardar", pos = (150,350))
  30.         cerrar = wx.Button(panel, -1, "Cerrar", pos = (250,350))
  31.         deshacer = wx.Button(panel, -1, "Deshacer", pos = (50,350))
  32.         cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar)
  33.         deshacer.Bind(wx.EVT_BUTTON, self.OnDeshacer)
  34.     def OnDeshacer(self, event):
  35.         self.c_usuario.Clear()
  36.         self.c_clave.Clear()
  37.         self.c_cclave.Clear()
  38.     def OnCerrar(self, event):
  39.         self.Destroy()
  40.        
  41.  
  42.  
  43. class MyFrame(wx.Frame):
  44.     def __init__(self, parent, id, title):
  45.         #Ventana Principal
  46.         wx.Frame.__init__(self, parent, id, title)
  47.         panel = wx.Panel(self, -1)
  48.         #Textos estaticos
  49.         usuario = wx.StaticText(panel, -1, "Usuario:", pos = (130,100))
  50.         password = wx.StaticText(panel, -1, "Contraseña:", pos = (110,150))
  51.         #Cajas de texto
  52.         c_usuario = wx.TextCtrl(panel, -1, "", pos = (170,100))
  53.         c_pass = wx.TextCtrl(panel, -1, "", pos = (170,150), style = wx.PASSWORD)
  54.         #Botones
  55.         cerrar = wx.Button(panel, -1, "Cerrar", pos = (250,300))
  56.         aceptar = wx.Button(panel, -1, "Aceptar", pos = (150,300))
  57.         aceptar.Bind(wx.EVT_BUTTON, self.OnAceptar)
  58.         nuevo = wx.Button(panel, -1, "Nuevo", pos =(50,300))
  59.         nuevo.Bind(wx.EVT_BUTTON, self.OnNuevo)
  60.         cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar)
  61.         self.Centre()
  62.         self.Show()
  63.        
  64.  
  65.     def OnNuevo(self, event):
  66.         frame = Frame2(self)
  67.         frame.Centre()
  68.         frame.Show()
  69.  
  70.     def OnAceptar(self, event):
  71.         frame2 = Frame3(self)
  72.         frame2.Centre()
  73.         frame2.Show()
  74.        
  75.  
  76.        
  77.     def OnCerrar(self, event):
  78.         self.Destroy()
  79.  
  80.  
  81. app = wx.PySimpleApp()
  82. MyFrame(None, -1, "Titulo")
  83. app.MainLoop()
  #4 (permalink)  
Antiguo 13/10/2011, 18:32
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: problema llamar clase

Puedes usar algún framework para desarrollar aplicaciones de escritorio.

O puedes hacer tu aplicación siguiendo el algún patrón de desarrollo.

Por ejemplo, separar el manejo de la base de datos, la interfaz gráfica y la lógica de tu programa. (Modelo-Vista-Controlador)
  #5 (permalink)  
Antiguo 13/10/2011, 18:46
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: problema llamar clase

Si quieres hacer aplicaciones de "ventanas" te recomiendo el contructor boa, te ahorrarás un montón de trabajo...he probado el wxglade pero me parece mejor boa.
A mi me pasó algo parecido con los cambios de frames, aunque lo resolví de otra forma...
Saludos
  #6 (permalink)  
Antiguo 13/10/2011, 18:53
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: problema llamar clase

No he probado este framework pero no parece malo.

Dabo Application

También puedes hacer lo siguiente:
Usar SQLAlchemy (para base de datos) + wxpython en xml para las vistas + python para unir las vistas, la base datos y agregar lógica.
  #7 (permalink)  
Antiguo 13/10/2011, 19:07
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: problema llamar clase

Hola, la verdad no había escuchado esos framework, pensaba trabajar con sqlite3 pero me habeis animado mucho mas...

me puedes contar mas como se trabaja ya que es muy ordenada y mas profesional

esperare tu respuesta razpeitia

saludos
  #8 (permalink)  
Antiguo 16/10/2011, 22:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: problema llamar clase

Si te bajas el zip que viene en la página de descarga de Dabo, trae ejemplos incluidos.
  #9 (permalink)  
Antiguo 17/10/2011, 06:34
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: problema llamar clase

Gracias Razpeitia, estube explorando la página y me lei los requisitos previos para que funcionara dabo, se ve que promete..

tratare de probarlo a ver que tal

saludos

Etiquetas: clase
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 17:20.