Traits gui ベース クラスを作成しようとしていますが、このクラスからいくつかのアイテム (グループなど) を継承したい他のクラスがあります。これらのクラス間でビューを完全に継承するのではなく、一部のオブジェクトだけを継承します。
やってみると
例えば:
from enthought.traits.api import Int, Str, Array, Instance, HasTraits, Float, Enum, Bool, Range
from enthought.traits.ui.api import View, Group, HGroup, VGroup, Item, spring
class A(HasTraits):
u = Int(23)
i = Int(66)
group1 = Group(Item('u'))
group2 = Group(Item('i'))
main = View(group1,group2)
class B(A):
group1 = a.group1 # I have tried this with a().group1 as well
o = Str('4345')
p = Str('3423')
group2 = Group(Item('o'))
group3 = Group(Item('p'))
main = View(group1,group2,group3)
#----------
これがばかげた例であることは承知していますが、要点を示しています。クラス B のインスタンスを作成しようとすると、クラス A に属性「group1」がないというエラーが表示されます。
通常の python クラスではこれは問題になりませんが、これらの TraitsUI Group オブジェクトは何らかの形で隠されています。回避策があるかどうか知っている人はいますか?
これは他の Traits タイプ (つまり Int() ) では機能しますが、私がテストした限りでは Groups では機能しません。
ありがとう!