Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Enthund Traitsui中使视图项成为只读和可滚动的?_Python_Enthought_Traitsui - Fatal编程技术网

Python 如何在Enthund Traitsui中使视图项成为只读和可滚动的?

Python 如何在Enthund Traitsui中使视图项成为只读和可滚动的?,python,enthought,traitsui,Python,Enthought,Traitsui,我用的是崔翠的观点。在一个视图中,我使用的是Item('strings',在20')时启用,'strings'是字符串列表,而len(x)>20从来都不是真的。如果列表中有三个以上的字符串,我无法全部看到。我希望能够滚动浏览所有字符串,但同时不允许编辑字符串。有人知道我是否可以有一个只读和可滚动的项目,如果没有,还有什么选择? 谢谢。我想您正在寻找一种定制编辑器的方法。以下是一个简单示例的总体思路: from traits.api import HasTraits, List from trai

我用的是崔翠的观点。在一个视图中,我使用的是
Item('strings',在20')
时启用,
'strings'
是字符串列表,而
len(x)>20
从来都不是真的。如果列表中有三个以上的字符串,我无法全部看到。我希望能够滚动浏览所有字符串,但同时不允许编辑字符串。有人知道我是否可以有一个只读和可滚动的项目,如果没有,还有什么选择?
谢谢。

我想您正在寻找一种定制编辑器的方法。以下是一个简单示例的总体思路:

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'
以防止编辑。

为什么会出现问题
ListEditor
ListStrEditor
具有只读样式。到目前为止,您尝试了什么?如果
len(x)>20
永远都不是真的,为什么您希望启用
?您是否将此作为获取只读编辑器的一种方式?@aestrivex感谢您的评论。我试过好几件事,但都没试过。我使用“enabled_when='len(x)>20'”获得一个只读编辑器。使用ListEditor,我可以获得只读样式,并且可以滚动列表。