繁体   English   中英

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

[英]Gedit not getting views on window creation (Plugin development)

我正在为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'事件处理程序。 (最终,我正在尝试保存文档时做一些事情)

那么,为什么第一次打开Gedit时window.get_views()不返回任何视图? (并且只有在我禁用并启用插件的情况下才这样做)

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

发生这种情况是因为激活插件后,您还没有任何标签。 插件激活创建选项卡。 您可能想听"tab-added""tab-added""tab-removed"信号来解决此问题。

暂无
暂无

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

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