Error con grid en wxpython

Ariel Nardelli pan_python en yahoo.com.ar
Jue Ago 2 06:10:01 CEST 2007


Mario Lacunza wrote:
> Hola,
>
> la ejecucion de tu programa se detiene?
>
> Me parece q el widget no soporta cierta funcion q estas utilizando o tiene
> un conflicto, te lo da en otro OS?
>   
Solo lo uso en linux :( no lo puede probar en windows porque no tengo 
ningun win a mano...

Y no, no se detiene continua funcionando sin problemas...

Alguna idea?

Gracias!

Ariel
>
> 2007/7/31, Ariel Nardelli <pan_python en yahoo.com.ar>:
>   
>> Hola!
>>
>> Estoy teniendo un problema con un grid, en un programa de python.
>>
>> Les pongo aca las partes relevantes del programa...
>>
>>
>> #!/usr/bin/env python
>> # -*- coding: ISO-8859-1 -*-
>>
>> #
>> # Emision de Facturas
>> #
>> import wx
>> import wx.grid
>> from sql import *
>> from fechas import *
>> from forpag import *  # Tabla Forma de pago
>> import letras
>>
>> class p2111(wx.MDIChildFrame):
>>    def __init__(self, pmios, *args, **kwds):
>>        self.pmios = pmios[:]
>>
>> ...
>>
>>        # Grid items de Facturas.
>>        self.static_line_2 = wx.StaticLine(self, -1)
>>        self.static_line_7 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
>>        self.grid = wx.grid.Grid(self, -1, size=(1, 1))
>>        self.static_line_8 = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
>>
>>        self.__set_properties()
>>        self.__do_layout()
>>
>>        # Eventos del Grid de "Items de Facturas"
>>        self.Bind(wx.grid.EVT_GRID_CMD_CELL_CHANGE, self.gridmodlinea,
>> self.grid)
>>
>>    def __set_properties(self):
>>        self.SetTitle("Emision Facturas")
>>        _icon = wx.EmptyIcon()
>>        _icon.CopyFromBitmap(wx.Bitmap("iconos/ft.ico", wx.BITMAP_TYPE_ANY
>> ))
>>        self.SetIcon(_icon)
>>
>> ...
>>
>>        # Grid Items de Facturas.
>>        self.grid.CreateGrid(16, 2)
>>        self.grid.EnableEditing(1)
>>        self.grid.SetRowLabelSize(0)
>>        self.grid.SetColLabelSize(20)
>>        self.grid.EnableDragColSize(0)
>>        self.grid.EnableDragRowSize(0)
>>        self.grid.SetGridLineColour(wx.Colour(192, 192, 192))
>>        self.grid.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
>>        self.grid.SetFont(wx.Font(self.let[6][2], wx.TELETYPE,
>> wx.NORMAL, self.let[6][3], 0, self.let[6][1]))
>>        self.grid.SetColLabelValue(0, "Descripcion")
>>        self.grid.SetColLabelValue(1, "Importe")
>>        self.grid.SetColSize(0, 455)
>>        self.grid.SetColSize(1, 95)
>>        self.grid.SetDefaultRowSize(self.let[5][4])
>>        self.grid.SetDefaultCellFont(wx.Font(self.let[6][2],
>> wx.TELETYPE, wx.NORMAL, self.let[6][3], 0, self.let[6][1]))
>>
>>
>>    def __do_layout(self):
>> ...
>>        grid_sizer_5.Add(self.grid, 1,
>> wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
>> ...
>>        self.SetAutoLayout(True)
>>        self.SetSizer(grid_sizer_1)
>>        grid_sizer_1.Fit(self)
>>        grid_sizer_1.SetSizeHints(self)
>>        self.Layout()
>>
>>
>>
>> #############################################################################
>>    # Eventos de Grid
>>    def gridmodlinea(self, event): # Modifica alguna linea del grid.
>>        for k in range(0,16):
>>            # Verifico que ninguno de los elementos del grid tenga un
>> largo mayor a 4.
>>            if  len(self.grid.GetCellValue(k,0)) > 4 : # (Descripcion)
>> Mayor al largo permitido.
>>                mensa = "El renglon " + str(k+1) + " tiene un largo
>> mayor al permitido. Por favor achique esa linea.\nGracias"
>>                self.cartelitos("Atencion",mensa)
>>                wx.SetCursor(wx.STANDARD_CURSOR)
>>                self.pasafoco('grid')
>>                return
>>        event.Skip()
>>
>> Ok hasta aca el programa o mejor dicho partes del programa :)
>>
>> El problema se me presenta cuando me posiciono en el evento de grid y
>> empiezo a escribir algo, automaticamente al hacerlo me aparece esto en
>> la linea de comandos donde estoy ejecutando el programa...
>>
>> (python:3956): Gtk-CRITICAL **: gtk_container_remove: assertion
>> `GTK_IS_TOOLBAR (container) || widget->parent == GTK_WIDGET (container)'
>> failed
>>
>> (python:3956): Gtk-CRITICAL **: gtk_container_remove: assertion
>> `GTK_IS_TOOLBAR (container) || widget->parent == GTK_WIDGET (container)'
>> failed
>>
>>
>> La pregunta es.. esto es normal???, que estoy haciendo mal o que me
>> falta?????
>>
>> Gracias!!!!
>> Ariel
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en aditel.org
>> http://listas.aditel.org/listinfo/python-es
>>
>>     
>
>
>
>   




Más información sobre la lista de distribución Python-es