如何使用 Enthought 工具套件为 HasTraits class 创建用户界面

How to make user interface for a HasTraits class using the Enthought Tool Suite

我有两个class,是childclass的HasTraits。 这种情况:

  view =View(
    VGroup(
        HGroup(
            Label(u' '),
            Item(
                "bt_import", label=' '
            ),
            Item(
                "bt_export", label=' '
            ),
            show_left=False
        ),
        HGroup(
            Label(u' '),
            Item(
                "signalplot",
                editor=ComponentEditor(size=(600, 300)),
                show_label=False
            ),
            Label(u' '),
        ),
        HGroup(
            Label(u' '),
            Item(
                "spectrumplot",
                editor=ComponentEditor(size=(600, 300)),
                show_label=False
            ),
            Label(u' '),
        ),
   ),
    width=600,
    height=800,
    resizable=False,
    title=u"FFT 过滤"
)

在这里,我放两个class。 signalplot<-signal class 和 spectrumplot<-spectrum class 两个 class:

class Signal(HasTraits):
     view = View()
.......

class Spectrum(HasTraits):
       view = View()
.......

这种情况下,如何制作两个class? 以及如何在界面中放置两个 class?

您要找的模式是这样的:

class MySignalSpectrumView(HasTraits):
    sig = Instance(Signal)
    spec = Instance(Spectrum)

if __name__ == "__main__":
    mssv = MySignalSpectrumView()
    mssv.configure_traits(view=view)

也就是说,您在模型 class 上调用 edit_traitsconfigure_traits 并将其传递给您要使用的视图。 定义 traits_view = View(...) 将提供默认使用的视图。 在 Traits、TraitsUI 和 Chaco 附带的文档和演示目录中有很多很好的示例。