系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:JetBrains PyCharm Community Edition 2016.3.2
- 本系列介绍
traits
,traitsui
的一些基础知识- 今天介绍常用控件,
List/Float/Int
Part 1:示例
- 实现一个Excel表格的效果,今天只是实现展示效果
- 表格每一列设置数据格式,从动图上可以看出,如果输入不符合格式要求的单元格底色会变成红色,并且改动是无效的,有点数据库的感觉
界面效果
运行效果
Part 2:代码
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()
代码截图
Part 3:部分代码解读
- 表格的每一行的各列是通过一个类
ExcelValue
来定义的 - 表格的一些特性是通过
TableEditor
来实现的,例如是否可以排序,是否可以编辑等 -
age = Int()
,规范了这一列只能输入整数 -
math_score = Float()
,规范了这一列只能输入浮点数
问:
- 怎么向该表格内写入数据库中的数据呢,或者将该表格中的数据读出来
- 可以筛选不,像Excel那样
- 可以新增行吗
- 或者其它你想了解的问题,可以留言哦
后续能够实现的功能会逐一介绍,敬请期待
以上为本次的学习内容,下回见
常按图片识别二维码,关注本公众号
Python 优雅 帅气
12x0.8.jpg
网友评论