Foros del Web » Programando para Internet » Python »

duda codigo para creacion de 2 frames

Estas en el tema de duda codigo para creacion de 2 frames en el foro de Python en Foros del Web. Hola colegas espero se encuentren bien, les escribo para aclarar dudas tengo un codigo el cual el objetivo es abrir el cuadro principal maximizado y ...
  #1 (permalink)  
Antiguo 19/09/2011, 09:24
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 0
duda codigo para creacion de 2 frames

Hola colegas espero se encuentren bien, les escribo para aclarar dudas tengo un codigo el cual el objetivo es abrir el cuadro principal maximizado y un cuadro pequeño centrado destinado a un login.

tengo mi codigo

Código Python:
Ver original
  1. #!/usr/bin/python
  2.  
  3.  
  4. # Doble.py
  5.  
  6. import wx
  7.  
  8. class MyFrame(wx.Frame):
  9.     def __init__(self, parent, id, title):
  10.         wx.Frame.__init__(self, parent, id, title, size = (600,400), style =wx.SYSTEM_MENU | wx.RESIZE_BORDER | wx.CAPTION | wx.MINIMIZE_BOX)
  11.         panel = wx.Panel(self, -1)
  12.        
  13.         self.Menu()
  14.         self.Centre()
  15.         self.Maximize()
  16.         self.Show()
  17.        
  18.     def Menu(self):
  19.         barramenu = wx.MenuBar()
  20.         fileMenu = wx.Menu()
  21.         fitem = fileMenu.Append(wx.ID_EXIT, "QUIT", "Quit Application")
  22.         barramenu.Append(fileMenu, "&FILE")
  23.         self.SetMenuBar(barramenu)
  24.        
  25.        
  26.     def OnQuit(self, evt):
  27.         self.Close()
  28.    
  29.        
  30. class MyFrame2(wx.Frame):
  31.     def __init__(self, parent, id, title):
  32.         wx.Frame.__init__(self, parent, id, title, size = (400,200), style = wx.SYSTEM_MENU | wx.RESIZE_BORDER | wx.CAPTION)
  33.         panel = wx.Panel(self, -1)
  34.        
  35.         usuario = wx.StaticText(panel, -1, "Usuario ", pos = (100,30))
  36.         contrasena = wx.StaticText(panel, -1, " Contraseña: ", pos = (100,50))
  37.         self.Centre()
  38.         self.Show()
  39.    
  40.                
  41.                
  42.                
  43.                
  44. app = wx.App()
  45. MyFrame(None, -1, "Doble")
  46. MyFrame2(None, -1, "usuarios")
  47. app.MainLoop()

y creo que voy bien pero al ejecutar me abre 2 ventanas totalmente independientes cosa que no deseo :S

ojala puedan ayudarme para juntas esas 2 ventanas en 1 sola

saludos
  #2 (permalink)  
Antiguo 19/09/2011, 09:58
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: duda codigo para creacion de 2 frames

No entiendo bien que es lo quieres.

Quieres hacer una ventana estilo MDI?
O quieres hacer un dialog?
O quieres que una sea padre de la otra?

Mas datos por favor.
  #3 (permalink)  
Antiguo 19/09/2011, 10:20
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda codigo para creacion de 2 frames

correcto mas bien una ventana MDI para que todos los elementos esten en una ventana, para ser mas especifico Razpeitia te mostrare una imagen como ejemplo de un programa desarrollado en visual fox pro





que opinas?

saludos
  #4 (permalink)  
Antiguo 22/09/2011, 22:24
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: duda codigo para creacion de 2 frames

Debe de empezar a tener un track de que post ya fueron resueltos y de cuales no.

Pero bueno, para lo de los MDI un simple búsqueda en google te arroja un ejemplo bastante completo.

Y por el lado de la pantalla de login es simple dialog.
  #5 (permalink)  
Antiguo 23/09/2011, 06:22
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda codigo para creacion de 2 frames

Hola razpeitia gracias por tu respuesta te lo agradezco mucho, veras ese ejemplo lo encontré y me gusto bastante, me puse a trabajar con el, pero ahora tengo una duda la cual es colocar el wx.Panel() al la ventana principal.. te mostrare un ejemplo

Código Python:
Ver original
  1. #!usr/bin/python
  2.  
  3. #nada.py
  4.  
  5. import wx
  6.  
  7. class MDIFrame(wx.MDIParentFrame):
  8.     def __init__(self, parent, id, title):
  9.         wx.MDIParentFrame.__init__(self, parent, id, title, size=(1024,768))
  10.         panelw = wx.Panel(self, -1, pos = (0,0))
  11.        
  12.         #Ventana hija de prueba Mdi
  13.         self.Ventana = wx.MDIChildFrame(self, -1, "Comprobación de Usuario", size = (400,400), pos = (300,200), style = wx.CAPTION | wx.RESIZE_BORDER |wx.SYSTEM_MENU)
  14.         #panel
  15.         panel = wx.Panel(self.Ventana, -1, pos = (0,0))
  16.         #textos estaticos
  17.         usuario = wx.StaticText(panel, -1, "USUARIO", pos = (100,100))
  18.         clave = wx.StaticText(panel, -1, "PASSWORD", pos = (100,140))
  19.         #cajs de texto
  20.         usuariob = wx.TextCtrl(panel, -1, "", pos = (170,100))
  21.         claveb = wx.TextCtrl(panel, -1, "", pos = (170,140), style = wx.PASSWORD)
  22.         #botones
  23.         self.Boton = wx.Button(panel, -1, "Cerrar", size = (100,100), pos = (200,200))
  24.         self.Aceptar = wx.Button(panel, -1, u"Aceptar", size = (100,100), pos = (90,200))
  25.         self.Boton.Bind(wx.EVT_BUTTON, self.OnExit)
  26.         self.Aceptar.Bind(wx.EVT_BUTTON, self.OnAceptar)
  27.         self.Ventana.Centre(True)
  28.         self.Ventana.Center(True)
  29.         self.Ventana.Show()
  30.  
  31.     def OnExit(self, evt):
  32.         self.Close(True)
  33.  
  34.     def OnAceptar(self, evt):
  35.         from MEDI import Recibo
  36.        
  37.  
  38. app = wx.PySimpleApp()
  39. frame = MDIFrame(None, -1, "Prueba de ventana MDI")
  40. frame.Maximize()
  41. frame.Show()
  42. app.MainLoop()

no logro colocarle el wx.panel a la ventana principal...

y alguna forma de abrir un modulo y cerrar el principal?

ya que al aceptar deberia abrir este modulo

Código Python:
Ver original
  1. import wx
  2.  
  3.  
  4. class Recibo(wx.Frame):
  5.     def __init__(self, parent, id, title):
  6.         wx.Frame.__init__(self, parent, id, title, size = (500,400))
  7.         panel = wx.Panel(self, -1)
  8.         #Textos_Estaticos...
  9.         centrocli = wx.StaticText(panel, -1, "Centro Clinico Los Angeles,CA ", pos = (10,10))
  10.         fecha = wx.StaticText(panel, -1, "Fecha: ", pos = (200,10))
  11.         recipago = wx.StaticText(panel, -1, "Recibo de Pago", pos = (10,30))
  12.         bs = wx.StaticText(panel, -1, "Bs: ", pos = (200,30))
  13.         nombre = wx.StaticText(panel, -1, "Nombres: ", pos = (10,50))
  14.         ci = wx.StaticText(panel, -1, "Cedula: ", pos = (200,50))
  15.         dpto = wx.StaticText(panel, -1, "Departamento: ", pos = (10,70))
  16.         conforme = wx.StaticText(panel, -1, "He recibido de Centro Clinico Los Angeles la cantidad de: ", pos = (10,90))
  17.         concepto = wx.StaticText(panel, -1, "Concepto: Pago Primera Quincena del mes de: ", pos = (10,110))
  18.         asignaciones = wx.StaticText(panel, -1, "Asignaciones", pos = (10,130))
  19.         self.Show()
  20.        
  21.        
  22. app = wx.App()
  23. Recibo(None, -1, "")
  24. app.MainLoop()

pero no logro cerrar nada.py

es decir al presionar aceptar abrir medi.py y cerrar nada.py
  #6 (permalink)  
Antiguo 23/09/2011, 09:36
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: duda codigo para creacion de 2 frames

No hagas un import solo para ejecutar otro script así no funcionan las cosas.

Supongo que quieres hacer mas o menos esto.
Código Python:
Ver original
  1. #coding: cp1252
  2. import wx
  3.  
  4. class Recibo(wx.MDIChildFrame):
  5.     def __init__(self, *args, **kwargs):
  6.         wx.MDIChildFrame.__init__(self, *args, **kwargs)
  7.         panel = wx.Panel(self, -1)
  8.         #Textos_Estaticos...
  9.         centrocli = wx.StaticText(panel, -1, "Centro Clinico Los Angeles,CA ", pos = (10,10))
  10.         fecha = wx.StaticText(panel, -1, "Fecha: ", pos = (200,10))
  11.         recipago = wx.StaticText(panel, -1, "Recibo de Pago", pos = (10,30))
  12.         bs = wx.StaticText(panel, -1, "Bs: ", pos = (200,30))
  13.         nombre = wx.StaticText(panel, -1, "Nombres: ", pos = (10,50))
  14.         ci = wx.StaticText(panel, -1, "Cedula: ", pos = (200,50))
  15.         dpto = wx.StaticText(panel, -1, "Departamento: ", pos = (10,70))
  16.         conforme = wx.StaticText(panel, -1, "He recibido de Centro Clinico Los Angeles la cantidad de: ", pos = (10,90))
  17.         concepto = wx.StaticText(panel, -1, "Concepto: Pago Primera Quincena del mes de: ", pos = (10,110))
  18.         asignaciones = wx.StaticText(panel, -1, "Asignaciones", pos = (10,130))
  19.  
  20. class Login(wx.MDIChildFrame):
  21.     def __init__(self, *args, **kwargs):
  22.         #Ventana hija de prueba Mdi
  23.         wx.MDIChildFrame.__init__(self, *args, **kwargs)
  24.         #panel
  25.         panel = wx.Panel(self, -1, pos = (0,0))
  26.         #textos estaticos
  27.         usuario = wx.StaticText(panel, -1, "USUARIO", pos = (100,100))
  28.         clave = wx.StaticText(panel, -1, "PASSWORD", pos = (100,140))
  29.         #cajs de texto
  30.         usuariob = wx.TextCtrl(panel, -1, "", pos = (170,100))
  31.         claveb = wx.TextCtrl(panel, -1, "", pos = (170,140), style = wx.PASSWORD)
  32.         #botones
  33.         self.Boton = wx.Button(panel, -1, "Cerrar", size = (100,100), pos = (200,200))
  34.         self.Aceptar = wx.Button(panel, -1, u"Aceptar", size = (100,100), pos = (90,200))
  35.         self.Boton.Bind(wx.EVT_BUTTON, self.OnExit)
  36.         self.Aceptar.Bind(wx.EVT_BUTTON, self.OnAceptar)
  37.         self.Center(True)
  38.    
  39.     def OnExit(self, evt):
  40.         self.Close(True)
  41.  
  42.     def OnAceptar(self, evt):
  43.         self.recibo = Recibo(self.Parent, -1, "Recibo titulo", size = (500,400))
  44.  
  45.  
  46. class MDIFrame(wx.MDIParentFrame):
  47.     def __init__(self, parent, id, title):
  48.         wx.MDIParentFrame.__init__(self, parent, id, title, size=(1024,768))
  49.         self.Ventana = Login(self, -1, "Comprobación de Usuario", size = (400,400), pos = (300,200), style = wx.CAPTION | wx.RESIZE_BORDER |wx.SYSTEM_MENU)
  50.         self.Ventana.Show()
  51.        
  52.        
  53. app = wx.PySimpleApp(0)
  54. frame = MDIFrame(None, -1, "Prueba de ventana MDI")
  55. frame.Maximize()
  56. frame.Show()
  57. app.MainLoop()
  #7 (permalink)  
Antiguo 23/09/2011, 10:23
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda codigo para creacion de 2 frames

claro yo pensé en hacer eso, a lo que me refiero y quiero practicar, al llamamiento de ciertos módulos por tal caso las ventanas MDI las quiero utilizar para el login luego de comprobar usuarios por base de datos llamar otro archivo .py y cerrar las ventanas MDI

es decir

logear con ventanas MDI, luego cerrarlas y seguido abrirse el otro archivo.py y seguir abriendo y cerrando modulos..

Espero me aconsejes porfavor espero tu respuesta. me serviria de mucho en estos momentos....

Etiquetas: frames
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 16:22.