代码之家  ›  专栏  ›  技术社区  ›  user4113344

我如何知道哪个小部件关注urwid?

  •  1
  • user4113344  · 技术社区  · 7 年前

    我正在设计一个Python接口 urwid 我有几个使用光标导航键无法访问的元素(即。 向上的 , 向下 , 左边 正当 )这确实是我想要的。我想使用 选项卡 钥匙

    使用此技术,我想访问三个组件,即由单选按钮组成的列表框、编辑框和编辑框右侧的按钮。我的应用程序是围绕一个派生urwid的类构建的。WidgetWrap。它包含一个框架,框架的主体是列表框,页脚包含编辑框。

    到目前为止我发现我可以 选项卡 主回路的 unhandled_input 回调。。。但我不知道这是不是该走的路。此外,我还没有弄清楚如何检测这三个小部件中的哪一个具有焦点。

    谁能给我指出正确的方向吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Elias Dorneles    7 年前

    你可能想好好读一读 the urwid documentation for the Container widgets .

    每个容器小部件都应该跟踪在给定时刻哪些小部件具有焦点,并且它们具有 get_focus_path() get_focus_widgets 查找焦点小部件的方法。

    看起来默认容器小部件使用 WidgetContainerMixin 类,您可以对其进行检查以了解更多信息。

    至于实现焦点处理的正确方法,我认为最好的方法是创建自定义小部件(要么继承现有的小部件,要么使用 urwid.WidgetWrap )这将共享焦点处理行为,但使用 unhandled_input 至少,这可能是探索这些问题的一个很好的起点。

    推荐文章