如何在Enthought Traitsui中创建一个只读和可滚动的视图项?

时间:2015-06-29 18:33:37

标签: python enthought traitsui

我正在使用Enthought Traitsui的观点。在视图中,我使用Item('strings', enabled_when='len(x)>20'),其中'strings'是字符串列表,len(x)>20永远不会成立。如果列表中有三个以上的字符串,我看不到它们全部。我希望能够滚动所有字符串,但同时不允许编辑字符串。有没有人知道我是否可以拥有一个只读和可滚动的项目,如果没有,有什么选择? 谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找一种自定义编辑器的方法。以下是最小例子中的一般概念:

from traits.api import HasTraits, List
from traitsui.api import View, ListEditor, Group, Item


class Foo(HasTraits):
    my_list = List()

    def _my_list_default(self):
        return [str(n) for n in range(6)]

    traits_view = View(
        Item('my_list',
            style='custom',
            editor=ListEditor(
                style='text',
                ),
        ),
        height=100,
    )

if __name__ == '__main__':
    f = Foo()
    f.configure_traits()

sample UI

您可以查看TraitsUI文档,找到许多方法来使用不同的编辑器工厂自定义视图。例如,您可以更改style='readonly'以阻止编辑。