[wxPython] grid-destroy not fully? (2.1.16/W98)

After several cycles of creating and deleting a dialog
with a tree, notebook and grid(s) in it I get some effects:
the lines in the tree are lost, the items are graybacklighted,
the grid has no values in its cells and is slow to scroll.
How to delete a dialog with a grid in it restless ?

(2.1.16/W98)

regards, Udo

What I do is the following:

    if self.dialog_obj != []:
      for i in self.dialog_obj:
        i.Close() #there: .Destroy()
        del( i )

    self.dialog_obj= []
    if self.notebook != None:
      self.notebook.Destroy()
      del( self.notebook )
      self.notebook= None
    if self.tree != None:
      self.tree.Destroy()
      del( self.tree )
      self.tree= None
    if self.splitter != None:
      self.splitter.Destroy()
      del( self.splitter )
      self.splitter= None

    and after that creating all new.

here the memory location of the dialog with grid in it for 22 cycles:

<pardia.Grid_Access_List instance at aa5ad0>
   373c0
<pardia.Grid_Access_List instance at adce90>
   2b2a0
<pardia.Grid_Access_List instance at b08130>
    19e0
<pardia.Grid_Access_List instance at b09b10>
  -15960
<pardia.Grid_Access_List instance at af41b0>
   30d80
<pardia.Grid_Access_List instance at b24f30>
   32230
<pardia.Grid_Access_List instance at b57160>
    4d80
<pardia.Grid_Access_List instance at b5bee0>
  8f23e0
<pardia.Grid_Access_List instance at 144e2c0>
  -1d550
<pardia.Grid_Access_List instance at 1430d70>
   44420
<pardia.Grid_Access_List instance at 1475190>
    34b0
<pardia.Grid_Access_List instance at 1478640>
   -bdc0
<pardia.Grid_Access_List instance at 146c880>
   4db10
<pardia.Grid_Access_List instance at 14ba390>
    2050
<pardia.Grid_Access_List instance at 14bc3e0>
    fa80
<pardia.Grid_Access_List instance at 14cbe60>
    9340
<pardia.Grid_Access_List instance at 14d51a0>
    df90
<pardia.Grid_Access_List instance at 14e3130>
   31620
<pardia.Grid_Access_List instance at 1514750>
   14820
<pardia.Grid_Access_List instance at 1528f70>
   -a870
<pardia.Grid_Access_List instance at 151e700>
   38df0
<pardia.Grid_Access_List instance at 15574f0>

after 22 trials: +ab1a20 = 10.69MB

The problem seems to be the manner of SetCellFont.
If for every cell is a new font-object created like
.SetCellFont(row, col, wxFont(....)) there are the descibed effects,
but with font=wxFont(....); .SetCellFont(row, col, font) it's going
well.

With the following variant of GridSimple on my W98-computer is the grid
already in the 2nd call empty(no cell values).

class SimpleGrid(wxGrid):
    def __init__(self, parent, log):
        wxGrid.__init__(self, parent, -1)
        self.log = log

        self.CreateGrid(0, 0)

        for i in xrange(0,5):
          self.AppendCols(1)
        cellfont= wxFont(10, wxDEFAULT , wxNORMAL, wxBOLD)
        for i in xrange(0,200):
          self.AppendRows(1)
          for j in xrange(0,5):
            self.SetCellFont(i, j, wxFont(10, wxDEFAULT , wxNORMAL,
wxBOLD))
# self.SetCellFont(i, j, cellfont)
            self.SetCellValue(i, j, '12345')

Udo

Udo Floegel schrieb:

···

After several cycles of creating and deleting a dialog
with a tree, notebook and grid(s) in it I get some effects:
the lines in the tree are lost, the items are graybacklighted,
the grid has no values in its cells and is slow to scroll.
How to delete a dialog with a grid in it restless ?

(2.1.16/W98)

regards, Udo

What I do is the following:

    if self.dialog_obj != :
      for i in self.dialog_obj:
        i.Close() #there: .Destroy()
        del( i )

    self.dialog_obj=
    if self.notebook != None:
      self.notebook.Destroy()
      del( self.notebook )
      self.notebook= None
    if self.tree != None:
      self.tree.Destroy()
      del( self.tree )
      self.tree= None
    if self.splitter != None:
      self.splitter.Destroy()
      del( self.splitter )
      self.splitter= None

    and after that creating all new.

here the memory location of the dialog with grid in it for 22 cycles:

<pardia.Grid_Access_List instance at aa5ad0>
   373c0
<pardia.Grid_Access_List instance at adce90>
   2b2a0
<pardia.Grid_Access_List instance at b08130>
    19e0
<pardia.Grid_Access_List instance at b09b10>
  -15960
<pardia.Grid_Access_List instance at af41b0>
   30d80
<pardia.Grid_Access_List instance at b24f30>
   32230
<pardia.Grid_Access_List instance at b57160>
    4d80
<pardia.Grid_Access_List instance at b5bee0>
  8f23e0
<pardia.Grid_Access_List instance at 144e2c0>
  -1d550
<pardia.Grid_Access_List instance at 1430d70>
   44420
<pardia.Grid_Access_List instance at 1475190>
    34b0
<pardia.Grid_Access_List instance at 1478640>
   -bdc0
<pardia.Grid_Access_List instance at 146c880>
   4db10
<pardia.Grid_Access_List instance at 14ba390>
    2050
<pardia.Grid_Access_List instance at 14bc3e0>
    fa80
<pardia.Grid_Access_List instance at 14cbe60>
    9340
<pardia.Grid_Access_List instance at 14d51a0>
    df90
<pardia.Grid_Access_List instance at 14e3130>
   31620
<pardia.Grid_Access_List instance at 1514750>
   14820
<pardia.Grid_Access_List instance at 1528f70>
   -a870
<pardia.Grid_Access_List instance at 151e700>
   38df0
<pardia.Grid_Access_List instance at 15574f0>

after 22 trials: +ab1a20 = 10.69MB

_______________________________________________
wxPython-users mailing list wxPython-users@wxwindows.org
http://wxwindows.org/mailman/listinfo/wxpython-users