2024-10-02 00:34:01 发布
网友
我想知道我该如何为python traits GUI创建一个完整的颜色框,我可以通过单击不同的按钮来改变颜色。在
我找到了ColorEditor编辑器,因此我可以通过定义一个特征来实现颜色的实体框:
my_color_box = Color()
然后在我的特征视图定义中:
但是,框中还包含颜色名称的文本,这不是我想要的外观。我尝试过ColorEditor()的其他样式,但似乎没有一种样式能给我一个完整的颜色框。在
有人知道我怎么做到的吗?在
谢谢
据我所见,traitsui的编辑并没有直接处理这一问题。最简单的事情(取决于您想要做什么)就是使用所需颜色的实体图像(使用ImageEditor)。即使您有几种不同的颜色选择,ImageEnumEditor(只读样式)也可以捕捉它们。在
为了捕捉traits能够捕捉任意颜色的表达能力(不列举256^3种可能的颜色,我不推荐),你需要做更多的工作。也许,您可以定义一个自定义编辑器来深入研究工具箱代码,这样就不需要太多的工作。我本来打算用wxpython提供一个最小的工作示例,但是我没有在wxpython中找到一个非常明显的小部件来实现这一点,而且我的wxpython技能也相当有限。在
编辑:
我在一年前找到了一种方法来生成一个有彩色框的表格。抱歉,我之前没想到,如果你不想一个映射到颜色的表(这正是我想要的),那么我打赌你可以使用traitsui而不是wx内部构造更简单的东西。但不管在哪里,这里都有一些东西,本着给你工具来帮助你解决自己的问题的精神:
from traits.api import * from traitsui.api import * class ColorColumn(ObjectColumn): def get_cell_color(self,object): return object.color class ColorContainer(HasTraits): color=Color('red') blank_text=Str('') class SomeApplication(HasTraits): dummy_table=List(ColorContainer) def _dummy_table_default(self): return [ColorContainer()] traits_view=View(Item(name='dummy_table', editor=TableEditor(columns= [ColorColumn(label='',editor=TextEditor(),name='blank_text',editable=False)], selection_bg_color=None,),show_label=False)) SomeApplication().configure_traits()
编辑2:
正如您所要求的,下面是一个使用ImageEnumEditor或ImageEditor的最小工作示例。在本例中,图像位于/path_to_the_python_file/images。请注意,ImageEnumEditor仅适用于.gif文件。在
据我所见,traitsui的编辑并没有直接处理这一问题。最简单的事情(取决于您想要做什么)就是使用所需颜色的实体图像(使用ImageEditor)。即使您有几种不同的颜色选择,ImageEnumEditor(只读样式)也可以捕捉它们。在
为了捕捉traits能够捕捉任意颜色的表达能力(不列举256^3种可能的颜色,我不推荐),你需要做更多的工作。也许,您可以定义一个自定义编辑器来深入研究工具箱代码,这样就不需要太多的工作。我本来打算用wxpython提供一个最小的工作示例,但是我没有在wxpython中找到一个非常明显的小部件来实现这一点,而且我的wxpython技能也相当有限。在
编辑:
我在一年前找到了一种方法来生成一个有彩色框的表格。抱歉,我之前没想到,如果你不想一个映射到颜色的表(这正是我想要的),那么我打赌你可以使用traitsui而不是wx内部构造更简单的东西。但不管在哪里,这里都有一些东西,本着给你工具来帮助你解决自己的问题的精神:
编辑2:
正如您所要求的,下面是一个使用ImageEnumEditor或ImageEditor的最小工作示例。在本例中,图像位于/path_to_the_python_file/images。请注意,ImageEnumEditor仅适用于.gif文件。在
^{pr2}$相关问题 更多 >
编程相关推荐