系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:JetBrains PyCharm Community Edition 2016.3.2
traits
,traitsui
的一些基础知识List/Float/Int
界面效果
运行效果
from traits.api import HasTraits, Str, List, Int, Float
from traitsui.api import View, Item, Group, TableEditor
from traitsui.table_column import ObjectColumn
class ExcelValue(HasTraits):
name = Str()
gender = Str()
age = Int()
english_score = Float()
math_score = Float()
traits_view = View(
'name', 'gender', 'gender', 'age', 'english_score', 'math_score',
title='ScoreDisplay',
width=0.18,
)
table_editor = TableEditor(
columns=[ObjectColumn(name='name', width=0.20),
ObjectColumn(name='gender', width=0.20),
ObjectColumn(name='age', width=0.20),
ObjectColumn(name='english_score', width=0.20),
ObjectColumn(name='math_score', width=0.20)],
deletable=True,
sort_model=True,
auto_size=False,
editable=True,
orientation='vertical',
show_toolbar=False,
selection_mode="rows",
selected="person_choose",
row_factory=ExcelValue)
class Ui(HasTraits):
excel = List(ExcelValue, editor=table_editor)
selected_first_col = Str()
g1 = Group([Item("excel", style="simple", width=700, show_label=False, emphasized=True),
"_",
Item("selected_first_col", style="simple", show_label=False)],
show_border=True)
view = View(g1, resizable=True, title="excel效果")
# 取值
student = [ExcelValue(name='张三', gender='男', age=18, english_score=81.5, math_score=95),
ExcelValue(name='李四', gender='男', age=17, english_score=86, math_score=91.5)]
ui = Ui(excel=student)
ui.configure_traits()
代码截图
ExcelValue
来定义的TableEditor
来实现的,例如是否可以排序,是否可以编辑等age = Int()
,规范了这一列只能输入整数math_score = Float()
,规范了这一列只能输入浮点数