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,我可以获得只读样式,并且可以滚动列表。