繁体   English   中英

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

[英]How to remove a menu item from Gedit from a plugin

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

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

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

  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来验证这一点,但是我希望这能为您提供足够的指导以找到解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM