Gedit没有获得关于窗口创建的视图(插件开发)

时间:2010-11-12 11:20:51

标签: python plugins 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(任意数量的标签打开)时,我看不到'到达这里'。但是,如果我去插件菜单,并禁用并重新设置我的插件,我将打印'到达这里'(多次打开很多标签)

我也需要get_views(),因为我需要使用'saved'事件处理程序。 (最终我在保存文档时尝试做某事)

那么,为什么window.get_views()在第一次打开Gedit时没有返回任何视图? (并且只有在禁用和重新设置插件时才会这样做)

另外,如果我'打印window.get_views(),同样的事情也会发生。它将打印一个空列表,但如果它禁用/重新启用该插件,我会得到一个包含所有视图的列表。

1 个答案:

答案 0 :(得分:4)

这是因为当你的插件被激活时,你还没有任何标签。在插件激活后创建标签。您可能希望收听"tab-added""tab-removed"信号来解决此问题。