2010-11-12 44 views
2

我正在開發一個Gedit插件。Gedit沒有獲得窗口創建的意見(插件開發)

import gedit 

class ReloadOnSave(gedit.Plugin): 

    def __init__(self): 
     gedit.Plugin.__init__(self) 

    def activate(self, window): 
     for view in window.get_views(): 
      self.connect_handlers(view) 

    def connect_handlers(self, view): 
     print 'Reached here' // This doesnt happen on Gedit startup. 

會發生什麼是,當我打開gedit(打開任何數量的選項卡)時,我沒有看到'到達這裏'。但是,如果我去插件菜單,並禁用和renable我的插件,我會打印'到達這裏'(儘可能多次,但無數標籤打開)

我也需要get_views(),因爲我需要使用'保存'事件處理程序。 (最終我試圖在保存文檔時做些什麼)

那麼,爲什麼當Gedit第一次打開時window.get_views()返回任何視圖? (只有這樣做,如果我禁用和renable插件)

此外,如果我打印window.get_views(),同樣的事情會發生。它會打印一個空的列表,但如果它禁用/重新啓用插件,我會得到一個包含所有視圖的列表。

回答

4

發生這種情況是因爲當你的插件被激活時,你還沒有任何標籤。在插件激活後創建制表符。您可能想要聽取"tab-added""tab-removed"信號來解決該問題。

+0

會做。謝謝。 – sqram 2010-11-12 19:10:53