0

我有一个在 python 中实现的小型绘图程序,使用 TraitsUI 作为图形界面(以及用于绘图的 matplotlib,但这在这里并不重要)。所以我有一个class Plotter(HasTraits),最终使用该configure_traits()方法显示。看起来像这样,带有实际的viewmaplotlib 图形编辑器和一些控制元素:

view = View(Item('figure', editor=MPLFigureEditor(), show_label=False),
    Item('param', show_label=False),
    Group(Item('previous', show_label=False),
      Item('next', show_label=False),
      Item('xminbox', label="xrange"),
      Item('xmaxbox', show_label=False),
      Item('persistbox', label='persistent'),
      orientation = 'horizontal'),
    width=800,
    height=600,
    resizable=True,
    title="TraitsVisualizer",)

现在我想在控件中添加一个额外的复选框“数组”,复选框的实际数量由图中的绘图数量动态确定。所以在我看来,我需要一些方法来动态地从视图中添加和删除“项目”,但我不知道如何实现这一点。

谢谢!

4

1 回答 1

1

如果您的项目数量有限,最简单的方法是使用 visible_when(或 enabled_when)选项在 GUI 中指定您可能需要的所有项目。

view=View(Item(name='muffin_type'),
          Item(name='type_of_blueberry',editor=BlueberryEditor(),
               visible_when='muffin_type==\'blueberry\'')))

(visible_when 中的字符串由视图执行)

于 2013-07-24T16:33:52.540 回答