如何在我的自定义小部件中实现GtkOrientable

时间:2014-06-04 22:30:03

标签: python python-3.x gtk3

如何在我的自定义小部件中实现GtkOrientable,到目前为止我所做的是:

class MyOwnWidget(Gtk.Orientable, Gtk.DrawingArea):
    ...

当我跑Gtk时:

/usr/lib/python3.4/site-packages/gi/types.py:194: Warning: Object class gtkmeter+GtkMeter doesn't implement property 'orientation' from interface 'GtkOrientable'
_gobject.type_register(cls, namespace.get('__gtype_name__'))

那么实现GtkOrientable的正确步骤是什么?

1 个答案:

答案 0 :(得分:2)

GtkOrientable需要"方向"实现此接口的类上存在的属性。要在Python中执行此操作,您可以使用GObject.Property:

from gi.repository import GObject
from gi.repository import Gtk

class MyOwnWidget(Gtk.DrawingArea, Gtk.Orientable):
    orientation = GObject.Property(type=Gtk.Orientation, default=Gtk.Orientation.VERTICAL)

还要注意继承的顺序,因为Gtk.Orientable是一个接口,它应该在您进行子类化的具体类之后。也可以看看: https://developer.gnome.org/gtk3/stable/gtk3-Orientable.html