On Fri, Jul 15, 2011 at 6:48 PM, Ian Ward <[email protected]> wrote:

> mammar wrote on 2011-07-15 03:53:
> > Hi All,
> >
> >
> > I have an urwid application developed with different views. Main view
> > have a user menu which shows choices  a user can choose from, all the
> > menu choices are bind with some key. Upon a valid keypress it will start
> > the action bind with that key.
> >
> > The problem is that, keys are working with main view but when the view
> > changes no key work.
> >
> > #mainloop call
> > self.loop = urwid.MainLoop(self.main_view, palette,
> > unhandled_input=self.OnKey)
> >
> > #this is how i change view
> > self.loop.widget = self.run_view
> > self.loop.draw_screen()
> >
> > How to handle the keypresses when view changes?
>
> Once you change loop.widget all the keypresses will be sent to run_view
> instead of main_view.  Some solutions:
>
> 1. handle the view-changing keys in all the different views that may be
> active
>
> 2. make a top level widget that handles the view-changing keys and
> changes what it displays.  A Frame that changes its .body attribute
> would be a good choice.
>
> 3. if you plan to only ever have those three views you could use an
> input_filter on the MainLoop.  I don't recommend this because it's the
> least flexible option.
>
> Ian
>
> _______________________________________________
> Urwid mailing list
> [email protected]
> http://lists.excess.org/mailman/listinfo/urwid
>


Thanks Ian,
Let me try it.
_______________________________________________
Urwid mailing list
[email protected]
http://lists.excess.org/mailman/listinfo/urwid

Reply via email to