Ejercicio88.py

Continuacion del Ejercicio 87 pero agregandole el foco el centrado i lo de la fecha


# -*- coding: UTF8 -*-

import wx

class App(wx.App):
    def OnInit(self):
        self.ventana = wx.Frame(parent = None, title = u'Examen Medico', size = (360,470))
        self.ventana.CenterOnScreen()
        panel = wx.Panel(self.ventana, -1)
        datos = wx.StaticText(panel, -1, u'Datos del empleado: ', pos = (20,20))
        apellido = wx.StaticText(panel, -1, u'Apellido: ', pos = (20,50))
        self.cuadro_apellido = wx.TextCtrl(panel, -1, '', pos = (190 , 45), size = (150,-1))
        self.cuadro_apellido.SetFocus()
        nombres = wx.StaticText(panel, -1, u'Nombres: ', pos = (20,80))
        self.cuadro_nombre = wx.TextCtrl(panel, -1, '', pos = (190 , 75), size = (150,-1))
        edad = wx.StaticText(panel, -1, u'Edad: ', pos = (20,110))
        cuadro_edad = wx.SpinCtrl(panel, -1, pos = (190,105), size = (150,-1))
        cuadro_edad.SetRange(0,100)
        fecha_nacimiento = wx.StaticText(panel, -1, 'Fecha de Nacimiento', pos = (20,140))
        self.cuadro_nacimiento = wx.DatePickerCtrl(panel, -1, pos = (190,135), size = (150, -1))
        
        sexo = wx.StaticText(panel, -1, u'Sexo: ', pos = (20,170))
        sexolista = [u'F', u'M']
        cuadro_sexo = wx.ComboBox(panel, -1, '', (190,165), (150,-1), sexolista, wx.CB_DROPDOWN)
        doctor = wx.StaticText(panel, -1, u'Doctor que lo atendio: ', pos = (20,200))
        doctorlista = [u'Dra. Queen', u'Dr. Howard', u'Dr. House']
        cuadro_doctor = wx.ComboBox(panel, -1, '', (190,195), (150,-1), doctorlista, wx.CB_DROPDOWN)
        contrato = wx.StaticText(panel, -1, u'Situacion Laboral: ', pos = (20,230))
        contratolista = [u'Efectivo', u'Tercerizado', u'Contratado']
        contrato_doctor = wx.ComboBox(panel, -1, '', (190,225), (150,-1), contratolista, wx.CB_DROPDOWN)
        
        historia_clinica = wx.StaticText(panel, -1, u'Historia Clinica', pos = (20,260))
        cuadro_historia_clinica = wx.TextCtrl(panel, -1, '', pos = (20 , 280), size = (320,120), style = wx.TE_MULTILINE)
        boton_aceptar = wx.Button(panel, -1, u'Aceptar', pos = (250,420))
        boton_cancelar = wx.Button(panel, -1, u'Cancelar', pos = (150,420))
        self.Bind(wx.EVT_BUTTON, self.OnSalir, boton_cancelar)
        self.Bind(wx.EVT_BUTTON, self.OnAceptar, boton_aceptar)
        self.ventana.Show()
        return True
        
    def OnSalir(self, evt):
        self.ventana.Close()
        
    def OnAceptar(self, evt):
        fechanac = self.cuadro_nacimiento.GetValue()
        fechanac = (('%04d/%02d/%02d') % (fechanac.GetYear(), 
                                         fechanac.GetMonth()+1, 
                                         fechanac.GetDay()))
        print fechanac
        ingresonombre = self.cuadro_nombre.GetValue()
        ingresoapellido = self.cuadro_apellido.GetValue()
        dialogo = wx.MessageDialog(self.ventana, u'Estimado/a %s %s, sus datos fueron guardados' % (ingresonombre, ingresoapellido), u'Información', wx.OK | wx.ICON_INFORMATION)
        dialogo.ShowModal()
        dialogo.Destroy()
        
        
aplicacion = App()
aplicacion.MainLoop()

Aporte de rey


# -*- coding: UTF8 -*-
# Ejercicio numero 88
import wx
import os

class Ventana(wx.App):
     def OnInit(self):
        # Creamos el Frame principal y le adosamos el panel en donde estaran los widgets
        self.ventana=wx.Frame(parent=None, title=u'Ingreso', size=(350,435))
        self.ventana.CenterOnScreen()
        self.panel=wx.Panel(self.ventana,-1)

        # Aca creamos el texto Apellido y abajo del mismo el area para escribir el mismo
        apellido=wx.StaticText(self.panel,-1,u'Apellido  ',pos=(30,22))
        self.apellidos=wx.TextCtrl(self.panel,-1,pos=(100,17),size=(210,-1))
        self.apellidos.SetFocus()

        # Hacemos lo mismo con el nombre
        nombre=wx.StaticText(self.panel,-1,u'Nombre  ',pos=(30,52))
        self.nombres=wx.TextCtrl(self.panel,-1,pos=(100,47),size=(210,-1))

        # Y la edad, pero utilizando otro widget como el de SpinCtrl que limita a que ingresemos
        # si o si numeros en un rango asignado por SetRange
        edad=wx.StaticText(self.panel,-1,u'Edad:  ',pos=(30,85))
        self.edads=wx.SpinCtrl(self.panel,-1,pos=(100,80),size=(55,-1))
        self.edads.SetRange(1,120)


        naci=wx.StaticText(self.panel,-1,u'Fecha Nac',pos=(30,115))
        self.nacis=wx.DatePickerCtrl(self.panel,-1,pos=(100,110),size=(150,-1))


        # Hacemos el control de sexo limitando a un ComboBox de tres opciones
        sexo=wx.StaticText(self.panel,-1,u'Sexo   ',pos=(30,145))
        posibles=[u'Masculino',u'Femenino',u'No se no contesto']
        self.sexos=wx.ComboBox(self.panel,-1,u'Masculino',(100,140),(150,30),posibles,wx.CB_DROPDOWN|wx.CB_READONLY)

        # Repetimos lo anterior, pero para otro tema
        situacion=wx.StaticText(self.panel,-1,u'Situacion  ',pos=(30,180))
        precario=[u'Contratado',u'Efectivo',u'Tercerizado']
        self.precarios=wx.ComboBox(self.panel,-1,u'Contratado',(100,175),(150,-1),precario,wx.CB_DROPDOWN|wx.CB_READONLY)

        # Aca elegimos al medico que atiende
        medico=wx.StaticText(self.panel,-1,u'Medico',pos=(30,213))
        medicotico=[u'Dra Pamela',u'Dra Queen',u'Dr Howard',u'Dr House']
        self.medicos=wx.ComboBox(self.panel,-1,u'Dra Pamela',(100,208),(150,-1),medicotico,wx.CB_DROPDOWN|wx.CB_READONLY)

        # Y aca dejamos un control para la historia clinica. Con un area grande
        historia=wx.StaticText(self.panel,-1,u'Historia Clinica',pos=(30,240))
        self.historiass=wx.TextCtrl(self.panel,-1,u'',(100,265),(210,120), style=wx.TE_MULTILINE)

        # Aca vienen los botones tipicos de formularios, aceptar y camcelar
        btnaceptar=wx.Button(self.panel,-1,u'Aceptar', pos=(250,395))
        btncancelar=wx.Button(self.panel,-1,u'Cancelar', pos=(150,395))

        # Y la unica accion que realiza por el momento es cerrar la ventana en caso de presionar cancelar
        self.Bind(wx.EVT_BUTTON,self.OnSalir,btncancelar)
        self.Bind(wx.EVT_BUTTON,self.OnAceptar,btnaceptar)
        self.ventana.Show()
        return True

     def OnSalir(self,evt): # esta funcion permite cerra la aplicacion por medio del boton cancelar
         print u'Buevones, me voy'
         self.ventana.Destroy()

     def OnAceptar(self,evt):
         apellido=self.apellidos.GetValue()
         nombre=self.nombres.GetValue()
         edad=self.edads.GetValue()
         nac=self.nacis.GetValue()
         fecha=('%04d-%02d-%02d' %(nac.GetYear(),nac.GetMonth()+1,nac.GetDay()))
         sexo=self.sexos.GetValue()
         situacion=self.precarios.GetValue()
         atendido=self.medicos.GetValue()
         historia=self.historiass.GetValue()

         dlg=wx.MessageDialog(self.ventana,u'Bienvenido %s %s, usted tiene %s años, nacio el %s, su sexo es %s, su situacion laboral es %s, fue atendido por dra/o %s, y su historia clinica es %s'%(nombre,apellido,edad,fecha,sexo,situacion,atendido,historia),u'Bienvenidos ',wx.OK|wx.ICON_INFORMATION)
         dlg.ShowModal()
         dlg.Destroy()



aplicacion=Ventana()
aplicacion.MainLoop()

Deja un comentario