如何在我的自定义小部件中实现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的正确步骤是什么?
答案 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