【问题标题】:How to remove a menu item from Gedit from a plugin如何从插件中删除 Gedit 中的菜单项
【发布时间】:2011-11-01 23:16:16
【问题描述】:

我开发了一个插件来替换 Gedit 中的一些功能。此功能通过一个菜单项呈现。

我怎样才能删除当前菜单项以添加一个相同的新菜单项,除了这个新菜单项将绑定到我的回调?

【问题讨论】:

    标签: python gtk pygtk menuitem gedit


    【解决方案1】:

    我没有在现有应用程序上尝试过,但总的来说它归结为以下步骤。

    1. 获取UIManagerGObject.property(type=Gedit.Window).get_ui_manager()
    2. 使用 UIManager.get_ui 获取当前 UI 定义。使用它来确定要删除的项目。
    3. 使用在 UI 定义中找到的名称使用 Builder.get_object 检索项目。
    4. 我不确定菜单,但在检索到的项目上,您现在可能只需调用destroy。或者,您可以获取主菜单项并使用get_children 方法删除您想要的子项(即for i in menu.get_children(): menu.remove(i),其中i 是您想要摆脱的子项:您可能需要检查它以知道要删除哪一个。
    5. 最后,使用 UIManager.ensure_update 显式刷新 UI。

    如前所述,我没有尝试过,附近也没有 Linux 安装来验证这一点,但我希望这可以为您提供足够的指导来找到解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2013-04-14
      • 2013-04-23
      • 2014-01-06
      • 1970-01-01
      相关资源
      最近更新 更多