在特征图形用户界面中绘制彩色实体框

2024-10-02 00:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道我该如何为python traits GUI创建一个完整的颜色框,我可以通过单击不同的按钮来改变颜色。在

我找到了ColorEditor编辑器,因此我可以通过定义一个特征来实现颜色的实体框:

 my_color_box = Color()

然后在我的特征视图定义中:

^{pr2}$

但是,框中还包含颜色名称的文本,这不是我想要的外观。我尝试过ColorEditor()的其他样式,但似乎没有一种样式能给我一个完整的颜色框。在

有人知道我怎么做到的吗?在

谢谢


Tags: 实体box视图定义颜色mygui样式
1条回答
网友
1楼 · 发布于 2024-10-02 00:34:01

据我所见,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文件。在

^{pr2}$

相关问题 更多 >

    热门问题