Pmw, ScrolledFrame

Ernesto Revilla aerd en retemail.es
Vie Nov 22 17:48:48 CET 2002


Hacer que se visualice automaticamente el control que tiene el foco, dentro
de un ScrolledFrame.

Con esto me respondo a mi mismo:

El problema es que la rutina del 'autoscroll' tiene que hacer referencia al
ScrolledFrame, a su componente 'frame' (frame que contiene los controles) y
al widget.

El widget no sabe si está directamente dentro de un frame que soporta la
función makeFocusedWidgetVisible o no, así que va trabajando desde dentro
hacia fuera.

Mantengo una relación de Frame interno al MegaWidget creado en el
constructor. De esa manera el frame interno puede hacer llamadas al
contenedor. Dado que soy novato en temas Pmw, aprecio alternativas.



class ScrolledInteriorFrame(Tkinter.Frame):
    def makeFocusedWidgetVisible(self,widget):
         ....bla...bla....# si no está visible, hacerlo visible.


class ScrolledFrame(Pmw.ScrolledFrame):
    def __init__(self, parent, **kw):
        kw['frame_pyclass']=ScrolledInnerFrame
        apply(Pmw.ScrolledFrame.__init__,(self,parent),kw)
        self.component('frame').scrolledFrame=self


Si alguien quiere el código completo, que me avise.







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