On 14 Ott, 16:13, Mike Driscoll <[EMAIL PROTECTED]> wrote:
> On Oct 14, 5:21 am, Massi <[EMAIL PROTECTED]> wrote:
>
> > Hi everyone,
>
> > I'm writing a python script which uses a grid (PyGridTableBase) whose
> > cells can contain very large values (not only numbers, but also
> > strings). I've also written a custom renderer which dinamically shows
> > only the first n characters (according to the width of the cell)
> > replacing the last ones with dots. Now I would like to know if it is
> > possible to have a popup which shows the whole contents of a certain
> > cell when the mouse stops over the cell itself. Any ideas?
> > Thanks in advance.
>
> > Massi
>
> First off, let me recommend the wxPython mailing list for questions of
> this sort. You'll probably get more relevant help quicker if you go
> that route.
>
> Anyway, I've done tooltips on cells in a grid before and you'll need
> the same concept to use a pop-up dialog too. To begin, you'll want to
> bind to the mouse event, EVT_MOTION, like this:
>
> self.myGrid.GetGridWindow().Bind(wx.EVT_MOTION, self.onMouseOver)
>
> Next, you'll need to do something like the following in your mouse
> over function:
>
> <code>
>
> def onMouseOver(self, event):
>         '''
>         Method to calculate where the mouse is pointing and
>         then set the tooltip dynamically.
>         '''
>
>         # Use CalcUnscrolledPosition() to get the mouse position
> within the
>         # entire grid including what's offscreen
>         x, y =
> self.totals_sheet.CalcUnscrolledPosition(event.GetX(),event.GetY())
>
>         coords = self.totals_sheet.XYToCell(x, y)
>         # you only need these if you need the value in the cell
>         row = coords[0]
>         col = coords[1]
>         event.GetEventObject().SetToolTipString("My amazing tooltip")
>
> </code>
>
> Hopefully that will get you going. If not, just ask more questions
> (here or at the wxPython list).
>
> -------------------
> Mike Driscoll
>
> Blog:  http://blog.pythonlibrary.org
> Python Extension Building Network:    http://www.pythonlibrary.org

That's exactly what I needed, thank you!
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to