[英]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.