Ante todo buenas!
Os explico mi problema, acabo de volver de vacaciones y mi cerebro aun esta un poco mustio, y al retomar la programacion se un programa larguisimo me he quedado un poco atascado, vereis, tengo una clase que monta un grid y lo rellena con muchos datos "un pastizal de consultas sql" y ya he terminado esa parte de la programacion, solo es un grid donde se representan valores, pero ahora quiero que al hacer doble clic en una celda se habra una ventanita y me pida unos datos, le das a ok y el te los escriba en el servidor sql y ademas lo represente en el grid... bien pues he montado para que cuando haces doble clic se cree la ventanita toda cuca con las opciones que quiero pero no se como hacer para que cuando le de a aceptar la clase principal recupere los valores que se han introducido en la ventanita... os paso una simplificacion del codigo:
Esta seria la ventana auxiliar:
class Cuantos(wx.Dialog):
def __init__(self, parent, id, Texto):
# begin wxGlade: MyDialog.__init__
wx.Dialog.__init__(self, parent, id)
self.parent = parent
self.label_1 = wx.StaticText(self, -1, "¿Cuantos %s?" % Texto)
self.label_2 = wx.StaticText(self, -1, "Cod Prov:")
self.text_ctrl_1 = wx.TextCtrl(self, -1, "")
self.label_3 = wx.StaticText(self, -1, "Cod Cli:")
self.text_ctrl_2 = wx.TextCtrl(self, -1, "")
self.label_4 = wx.StaticText(self, -1, "Fecha carga:")
self.datepicker_ctrl_1 = wx.DatePickerCtrl(self, -1)
self.button_1 = wx.Button(self, -1, "Aceptar")
self.spin_ctrl_1 = FS.FloatSpin(self, -1, min_val=None, max_val=None,
digits= 2, increment=0.0, extrastyle=FS.FS_CENTRE)
self.Bind(wx.EVT_BUTTON, self.Clic, self.button_1)
self.__set_properties()
self.__do_layout()
# end wxGlade
def __set_properties(self):
# begin wxGlade: MyDialog.__set_properties
self.SetTitle("¿Cuantos?")
self.SetSize((103, 200))
self.spin_ctrl_1.SetMinSize((130, 25))
self.text_ctrl_1.SetMinSize((100, 25))
self.text_ctrl_2.SetMinSize((100, 25))
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyDialog.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_1.Add(self.label_1, 0, 0, 0)
sizer_1.Add(self.spin_ctrl_1, 0, 0, 0)
sizer_1.Add(self.label_2, 0, 0, 0)
sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
sizer_1.Add(self.label_4, 0, 0, 0)
sizer_1.Add(self.datepicker_ctrl_1, 0, 0, 0)
sizer_1.Add(self.label_3, 0, 0, 0)
sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
sizer_1.Add((100, 10), 0, 0, 0)
sizer_1.Add(self.button_1, 0, wx.ALL, 10)
self.SetSizer(sizer_1)
self.Layout()
# end wxGlade
def Clic(self, evento):
self.PreCarPro = self.text_ctrl_1.GetValue()
self.PreCarCli = self.text_ctrl_2.GetValue()
self.PreCarFec = self.datepicker_ctrl_1.GetValue()
self.PreCarCan = self.spin_ctrl_1.GetValue()
#self.Close()
Y este el pedazo de la clase principal en la que hago referencia a ella:
def CarClic(self, evento):
Col = evento.GetCol()
if (Col >= self.PreCarStartPos) and self.Mod:
Fil = evento.GetRow()
if (Fil+1) <= len(self.articulos):
hist = self.CarGrid.GetCellValue(Fil, Col)
Articulo = self.CarGrid.GetRowLabelValue(Fil)
if hist == '':
cuan = Cuantos(self, -1, "Palets")
cuan.Show()
else:
dlg = wx.SingleChoiceDialog(
self, '¿Que quieres hacer?', 'Elige...',
['Añadir', 'Modificar', 'Eliminar'],
wx.CHOICEDLG_STYLE)
if dlg.ShowModal() == wx.ID_OK:
repo = dlg.GetStringSelection()
dlg.Destroy()
if repo == 'Añadir':
cuan = Cuantos(self, -1, "Palets")
cuan.Show()
elif repo == 'Modificar':
pass
elif repo == 'Eliminar':
pass
else:
pass
else:
pass
solo quiero saber ¿¿como leches recupero los valores de la primera clase?? estoy atascado y esto es lo ultimo que me falta para acabar el jodido programa... llevo mas de medio año con las malditas consultas y estoy ansioso por acabar ya...
Un saludo y gracias por adelantado