如何从插件中删除Gedit中的菜单项

时间:2011-10-31 21:26:38

标签: python gtk pygtk menuitem gedit

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

如何删除当前菜单项以添加相同的新菜单项,除了这个新菜单项将绑定到我的回调?

1 个答案:

答案 0 :(得分: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明确刷新用户界面。
  6. 如上所述,我没有尝试过,也没有在附近进行Linux安装来验证这一点,但我希望这能为您提供足够的指示来解决问题。