You can set the tooltip for a wxGrid window as a whole using the SetToolTip method, but how do you set different tooltips for individual cells of the grid?
Here's how: Have a mouse event check every mouse move to see if you've moved between cells, and change the tooltip when you have.
Here's a function to do the hard work. Pass the grid along with a callback which takes row and column parameters and returns a tooltip string for that cell. InstallGridHint will do the rest.
1 def InstallGridHint(grid, rowcolhintcallback): 2 prev_rowcol = [None,None] 3 def OnMouseMotion(evt): 4 # evt.GetRow() and evt.GetCol() would be nice to have here, 5 # but as this is a mouse event, not a grid event, they are not 6 # available and we need to compute them by hand. 7 x, y = grid.CalcUnscrolledPosition(evt.GetPosition()) 8 row = grid.YToRow(y) 9 col = grid.XToCol(x) 10 11 if (row,col) != prev_rowcol and row >= 0 and col >= 0: 12 prev_rowcol[:] = [row,col] 13 hinttext = rowcolhintcallback(row, col) 14 if hinttext is None: 15 hinttext = '' 16 grid.GetGridWindow().SetToolTipString(hinttext) 17 evt.Skip() 18 19 wx.EVT_MOTION(grid.GetGridWindow(), OnMouseMotion)