2011-10-31 47 views
1

我開發了一個插件來替換Gedit中的某些功能。該功能通過一個菜單項呈現。如何從插件中刪除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. 最後,明確刷新的UI與UIManager.ensure_update

至於說,我沒有嘗試,也不是我有一個Linux安裝就近上驗證這一點,但我希望這給你足夠的指針達成解決方案。

相關問題