2016-03-03 40 views
-1

我有兩個類,它是HasTraits的子類。 這種情況下:如何使用Enthought工具套件爲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類和spectrumplot < -spectrum類 兩類:

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

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

這種情況下,如何使兩類? 以及如何把兩個類放入界面?

回答

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附帶的文檔和演示目錄中有很多很好的示例。

+0

我累了。但它會產生特徵錯誤。換言之,mssv.configure_traits(view = view)不會執行。謝謝 –

+0

確保'view','Signal'和'Spectrum'全部在該文件中定義或顯式導入。您必須將錯誤追溯發佈到此問題或通過自己查看追溯找出它。 –

+1

感謝您的幫助, –