Python - Dialogos

 
Vista:

Dialogos

Publicado por tronxx (16 intervenciones) el 30/04/2007 18:41:49
Hola amigos. Estoy creando un sencillo programa de altas, bajas, modificaciones de vendedores con mysql y pygtk, el caso es que cuando le dan click al boton NUEVO habro un dialogo y cuando le dan click al boton ACEPTAR dentro del dialogo entonces le doy de alta con los datos solicitados. El punto es que no conozco con que funcion elimino u oculto mi nuevo dialogo. Les pongo el codigo aqui para que vean:

class Dialog_pide_datos:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window = gtk.Dialog(title="Teclee los datos", parent=None, flags=gtk.DIALOG_MODAL)
# self.window.connect("delete_event", self.delete_event)
# self.window.connect("destroy", self.destroy)
self.window.show()
self.okcancel = 0

self.h_sizer_btn = gtk.HButtonBox()
self.h_sizer_btn.set_layout(gtk.BUTTONBOX_SPREAD)
self.h_sizer_btn.set_spacing(40)
self.btn_ok = gtk.Button("Aceptar", gtk.STOCK_OK)
self.btn_cancel = gtk.Button("Cancelar", gtk.STOCK_CANCEL)
self.h_sizer_btn.add(self.btn_ok)
self.btn_ok.show()
self.h_sizer_btn.add(self.btn_cancel)
self.btn_cancel.show()
self.h_sizer_btn.show()

#Create the static text widget and set the text
self.datos_h_sizer = gtk.HBox(gtk.FALSE, 0)
lbl_codigo = gtk.Label("Codigo")
self.edt_codigo = gtk.Entry(max=3)
lbl_nombre = gtk.Label("Nombre")
self.edt_nombre = gtk.Entry(max=20)
self.datos_h_sizer.pack_start(lbl_codigo, gtk.FALSE, gtk.FALSE, 0)

if modo_z == MODIFICA:
self.edt_codigo.set_text(vendedor['codigo'])
self.edt_nombre.set_text(vendedor['nombre'])

lbl_codigo.show()
self.datos_h_sizer.pack_start(self.edt_codigo, gtk.FALSE, gtk.FALSE, 0)
self.edt_codigo.show()
self.datos_h_sizer.pack_start(lbl_nombre, gtk.FALSE, gtk.FALSE, 0)
lbl_nombre.show()
self.datos_h_sizer.pack_start(self.edt_nombre, gtk.FALSE, gtk.FALSE, 0)
self.edt_nombre.show()
self.datos_h_sizer.show()

self.btn_ok.connect("clicked", self.OnAceptar, None)
self.btn_cancel.connect("clicked", self.OnCancelar, None)

self.sizer = gtk.VBox(gtk.FALSE, 0)
self.sizer.pack_start(self.datos_h_sizer, gtk.TRUE, gtk.TRUE, 0)
self.sizer.show()
self.sizer.pack_start(self.h_sizer_btn, gtk.TRUE, gtk.TRUE, 0)
self.sizer.show()
# self.window.add(self.sizer)
self.window.action_area.pack_start(self.sizer, gtk.TRUE, gtk.TRUE, 0)

def OnAceptar(self, widget, data=None):
global modo_z
sql_z = ''
self.okcancel = gtk.TRUE
codigo_z = self.edt_codigo.get_text().upper()
nombre_z = self.edt_nombre.get_text().upper()
cursor = mydb.cursor()
if modo_z == NUEVO:
sql_z = "insert into vendedor ( codigo, nombre ) values ('"+ codigo_z + "','"+ nombre_z + "')"
elif modo_z == MODIFICA:
sql_z = "update vendedor set nombre = '"+ nombre_z + "' where codigo='" + codigo_z + "'"
cursor.execute(sql_z)
self.hide()

def OnCancelar(self, widget, data=None):
self.okcancel = gtk.FALSE
self.hide()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dialogos

Publicado por tronxx (16 intervenciones) el 02/05/2007 19:06:51
Hola amigos, pues nada, que buscando y buscando encontre la forma de hacer desaparecer el dialogo:
def OnAceptar(self, widget, data=None):
global modo_z
sql_z = ''
self.okcancel = gtk.TRUE
codigo_z = self.edt_codigo.get_text().upper()
nombre_z = self.edt_nombre.get_text().upper()
cursor = mydb.cursor()
if modo_z == NUEVO:
sql_z = "insert into vendedor ( codigo, nombre ) values ('"+ codigo_z + "','"+ nombre_z + "')"
elif modo_z == MODIFICA:
sql_z = "update vendedor set nombre = '"+ nombre_z + "' where codigo='" + codigo_z + "'"
cursor.execute(sql_z)
self.destroy()

lo unico malo es que no puedo actualizar a mi clase madre, en fin, por si a alguien le sirve
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar