デフォルトでは、エディターはcapitalize
テキストに対して string メソッドを呼び出します。どうしてか分かりません; おそらく作成者は、これが UI で一貫したスタイルを強制するのに役立つと考えました。
format_func
の引数を使用して、この動作をオーバーライドできますCheckListEditor
。これが例です。(また、のlabel
引数を使用しItem
て、エディターのラベルの大文字化をオーバーライドしました。)
from traits.api import HasTraits, List, on_trait_change
from traitsui.api import Item, View, CheckListEditor
class Foo(HasTraits):
stuff = List()
traits_view = View(Item('stuff', style='custom', label='stuff',
editor=CheckListEditor(values=['.state.First', '.state.Last', '.state.Any'],
format_func=lambda x: x)))
@on_trait_change('stuff[]')
def show_stuff(self):
print "stuff =", self.stuff
if __name__ == "__main__":
f = Foo()
f.configure_traits()
values
あるいは、タプルのリストとしてを与えることもできます。各タプルの形式(obj, label)
はです。label
は UI に表示される文字列で、 はobj
リストに追加されるオブジェクトです。このフォームを使用すると、ラベルは UI で変更されません。例えば、
traits_view = View(Item('stuff', style='custom', label='stuff',
editor=CheckListEditor(values=[('.state.First',)*2,
('.state.Last',)*2,
('.state.Any',)*2])))