如何在Glade中为自定义小部件创建适配器?

时间:2019-02-09 16:26:15

标签: gtk3 glade pygobject

我无法使自定义小部件在Glade中工作。假设我有一个自定义窗口小部件,其中包含一个框架中的堆栈。

class FramedStack(Gtk.Misc):
    def __init__(self):
        self.frame = Gtk.Frame()
        self.stack = Gtk.Stack()
        self.frame.add(self.stack)

我可以将其添加到Glade目录中,并且可以正常工作。但是现在我想在Glade中修改小部件的行为。但是,一旦我定义了一个适配器

class FramedStackAdaptor():
    def do_post_create(self, w, reason):
        pass #something

并修改目录中的行,以便Glade了解适配器

<glade-widget-class title="FramedStack" name="FramedStack" adaptor="FramedStackAdaptor"/>

我收到GladeUI警告

GladeUI-WARNING **: Failed to get FramedStack's adaptor FramedStackAdaptor.

类定义与自定义窗口小部件的定义位于同一文件中。我假设FramedStackAdaptor应该继承Glade Adapter类,但是我不知道是否有这样的类。所以我的问题是:如何为自定义窗口小部件正确定义适配器?

1 个答案:

答案 0 :(得分:0)

class FramedStackAdaptor(Gladeui.WidgetAdaptor):
    def post_create(w, reason):
        pass #something

应该让您入门