如何使用Enthought Tool Suite为HasTraits类创建用户界面

时间:2016-03-03 07:23:40

标签: python traits enthought traitsui

我有两个班,是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 过滤"
)

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

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

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

这个案例,如何制作两个班? 以及如何在界面中放置两个类?

1 个答案:

答案 0 :(得分:1)

您正在寻找的模式是:

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

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

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