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 回答