Я обнаружил, что могу применить формат для ВСЕХ столбцов в TabularAdapter, добавив такой оператор в объявление TabularAdapter: format = '% 7.4f'.различные форматы столбцов TabularAdapter?
Однако, я хотел бы иметь различное форматирование для каждого столбца таблицы ... это возможно? Я попытался указать формат только для индекса столбца 2 (как показано в примере ниже), но он не относится только к этому столбцу. Я искал, как это сделать правильно, но пока ничего не нашел.
Вот небольшой пример файла:
from traits.api import HasTraits, Array
from traitsui.api import View, Group,Item, TabularEditor
from traitsui.tabular_adapter import TabularAdapter
from numpy import dtype
test_dtype = dtype([('Integer#1', 'int'), ('Integer#2', 'int'), ('Float', 'float')])
class testArrayAdapter(TabularAdapter):
columns = [('Col1 #', 0), ('Col2', 1), ('Col3', 2)]
even_bg_color = 0xf4f4f4 # very light gray
width = 125
class test(HasTraits):
test_array = Array(dtype=test_dtype)
view = View(
Item(name = 'test_array',
show_label = False,
editor = TabularEditor(adapter = testArrayAdapter()),
),
Item(name = 'test_array',
show_label = False,
editor = TabularEditor(adapter = testArrayAdapter(column=2, format='%.4f')),
),
)
Test = test()
Test.test_array.resize(5, refcheck = False)
Test.configure_traits()
То, что я хотел бы видеть, чтобы иметь третий столбец имеет 4 decmals (это поплавок в конце концов), а в колонках 1 & 2 представлены как целые числа.
УДИВИТЕЛЬНЫЙ Уоррен! Ты спас меня так много поисков и проб и ошибок! Я просто надеюсь, что когда-нибудь я получу достаточно знаний в Canopy, чтобы помочь кому-то другому. – Steve76063
Уоррен ... похоже, что у вас есть некоторые глубокие знания табличных адаптеров ... Знаете ли вы, может ли DEF уведомление об изменении отдельного элемента (например, для числа, меняющегося в любой строке/столбце) ? Я искал уведомления о отдельных элементах Array, но не повезло. Видя, что можно сделать с переопределением def get_format(), мне было интересно, есть ли что-то подобное для изменения значения? (мои пальцы скрещены :)) – Steve76063
Для массива numpy, возможно, есть некоторые хаки, которые вы могли бы использовать (например, переопределить метод 'set_text'' TabularAdapter'). Вы должны спросить об этом в новом вопросе, поэтому больше активных пользователей TraitsUI смогут увидеть его (здесь есть несколько SO). –