1

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 では機能しません。

ありがとう!

4

1 に答える 1

1

これは役立つかもしれません: Traits UI ユーザー ガイド / 高度なビューの概念 / オブジェクトを含める

于 2014-05-06T21:42:12.790 に答える