es decir mi objetivo es hacer
y al darle a los botones "adelante", "atras", los datos se muevan en las cajas de texto.
entonces mi pregunta es ¿porque es tan difícil construir eso? si en comparación a visual foxpro es cuestión de 5 a 10 minutos hacer algo similar :(
mi base de datos es así
CREATE TABLE [empleado] (id integer NOT NULL,nombre_completo text,cedula integer,numero_telefono integer,dirección text)
Código Python:
Ver original
''' Created on 17/10/2011 @author: Administrador ''' import wx import sqlite3 as lite class Macro(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size = (400,400)) panel = wx.Panel(self, -1) #Nombres estaticos primaria = wx.StaticText(panel, -1, "ID:", pos = (115,40)) nombre = wx.StaticText(panel, -1, "Nombre y apellido:", pos = (40,80)) cedula = wx.StaticText(panel, -1, "Cedula:", pos = (92,120)) numero = wx.StaticText(panel, -1, "Numero Telefonico:", pos = (35,160)) direccion = wx.StaticText(panel, -1, "Direccion:", pos = (82,200)) #cajas self.cprimaria = wx.TextCtrl(panel, -1, "", pos = (150,40)) self.cnombre = wx.TextCtrl(panel, -1, "", pos = (150,80)) self.ccedula = wx.TextCtrl(panel, -1, "", pos = (150,120)) self.cnumero = wx.TextCtrl(panel, -1, "", pos = (150,160)) self.cdireccion = wx.TextCtrl(panel, -1, "", size = (100,50), pos = (150,200), style = wx.TE_MULTILINE) #botones nuevo = wx.Button(panel, -1, "nuevo", pos = (15,280), size = (50,30)) nuevo.Bind(wx.EVT_BUTTON, self.OnNuevo) deshacer = wx.Button(panel, -1, "deshacer", pos = (68,280), size = (50,30)) deshacer.Bind(wx.EVT_BUTTON, self.OnDeshacer) adelante = wx.Button(panel, -1, "adelante", pos = (121,280), size = (50,30)) adelante.Bind(wx.EVT_BUTTON, self.OnAdelante) atras = wx.Button(panel, -1, "atras", pos = (175,280), size = (50,30)) eliminar = wx.Button(panel, -1, "eliminar", pos = (228,280), size = (50,30)) guardar = wx.Button(panel, -1, "guardar", pos = (282, 280), size = (50,30)) guardar.Bind(wx.EVT_BUTTON, self.OnGuardar) cerrar = wx.Button(panel, -1, "cerrar", pos = (335,280), size = (50,30)) cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar) self.Centre() self.Show() def OnAdelante(self, event): try: con = lite.connect('basededato.sqlite') cur = con.cursor() uno = self.cprimaria.GetValue() dos = self.cnombre.GetValue() tres = self.ccedula.GetValue() cuatro = self.cnumero.GetValue() cinco = self.cdireccion.GetValue() cur.execute("Selec * from empleado where id = "1+"", (uno, dos, tres, cuatro, cinco)) con.commit() cur.close() con.close() except lite.Error, error: dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error') dlg.ShowModal() def OnNuevo(self, event): self.cprimaria.Clear() self.cnombre.Clear() self.ccedula.Clear() self.cnumero.Clear() self.cdireccion.Clear() def OnGuardar(self, event): try: con = lite.connect('basededato.sqlite') cur = con.cursor() uno = self.cprimaria.GetValue() dos = self.cnombre.GetValue() tres = self.ccedula.GetValue() cuatro = self.cnumero.GetValue() cinco = self.cdireccion.GetValue() cur.execute("INSERT into empleado values(?, ?, ?, ?, ?)", (uno, dos, tres, cuatro, cinco)) con.commit() cur.close() con.close() self.cprimaria.Clear() self.cnombre.Clear() self.ccedula.Clear() self.cnumero.Clear() self.cdireccion.Clear() wx.MessageBox("Sus datos fueron guardados exitosamente", "Guardar", wx.OK | wx.ICON_INFORMATION) except lite.Error, error: dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error') dlg.ShowModal() def OnDeshacer(self, event): self.cprimaria.Clear() self.cnombre.Clear() self.ccedula.Clear() self.cnumero.Clear() self.cdireccion.Clear() wx.MessageBox("Se han borrado los campos, satisfactoriamente", "Deshacer", wx.OK | wx.ICON_INFORMATION) def OnCerrar(self, event): self.Destroy() app = wx.App() Macro(None, -1, "Formulario de empleado") app.MainLoop()