我正在使用HasTraits对象构建一个gui。我有一个主对象,然后是gui的每个组件的对象。我想在多个组件之间共享一个对象。例如,我有一个主窗口A,它包含组件B和C。C需要能够访问B中的东西。目前我正在做这个
class B(HasTraits):
...
class C(HasTraits):
...
class A(HasTraits):
b = Instance(B,())
c = Instance(C)
...
def _c_default(self):
return C(b = self.b,...)
...这似乎不是最好的方法。还有一些子组件,所以A.C.D和D需要A.B中的东西。
这是使用特征共享对象的最佳方式吗?
发布于 2013-03-21 09:17:19
这在一定程度上取决于用例,但您的建议似乎是第一种方法。
一些评论:
如果您在应用程序设计方面有更多的讨论,您可能会看到它如何使用服务和扩展点来正确地共享可插拔应用程序中的对象。
例子:
class B(HasTraits):
name = Str
class C(HasTraits):
b = Instance(B)
name = DelegatesTo(b)
class A(HasTraits):
b = Instance(B,())
c = Instance(C)
...
def _c_default(self):
return C(b = self.b,...)
...
def _b_changed(self):
self.c.b = bhttps://stackoverflow.com/questions/15143705
复制相似问题