def M_add_class_attribs(attribs):
def foo(name, bases, dict_):
for v, k in attribs:
dict_[k] = v
return type(name, bases, dict_)
return foo
def enum(*names):
class Foo(object):
__metaclass__ = M_add_class_attribs(enumerate(names))
def __setattr__(self, name, value): # this makes it read-only
raise NotImplementedError
return Foo()
Использование это как это:
Animal = enum('DOG', 'CAT')
Animal.DOG # returns 0
Animal.CAT # returns 1
Animal.DOG = 2 # raises NotImplementedError
, если Вы просто хотите уникальные символы и не заботитесь о значениях, заменяете эту строку:
__metaclass__ = M_add_class_attribs(enumerate(names))
с этим:
__metaclass__ = M_add_class_attribs((object(), name) for name in names)
Сортировка отключена для каждого столбца. Вы не можете отключить для всего древовидного списка.
Для каждого столбца вашего TreeList отключите AllowSort
- это одно из подсвойств, перечисленных в OptionsColumn
.