2

我正在使用 Enthought Traitsui 中的视图。在一个视图中,我正在使用Item('strings', enabled_when='len(x)>20'), where'strings'是一个字符串列表,并且len(x)>20永远不会是真的。如果列表中的字符串超过三个,我就无法全部看到它们。我希望能够滚动浏览所有字符串,但同时不允许编辑字符串。有谁知道我是否可以拥有一个只读和可滚动的项目,如果不是,还有什么替代品?谢谢你。

4

1 回答 1

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()

示例用户界面

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

于 2015-08-12T03:36:18.983 回答