美文网首页
【traits-traitsui-基础】-05-控件List-1

【traits-traitsui-基础】-05-控件List-1

作者: Data_Python_VBA | 来源:发表于2019-03-09 17:52 被阅读0次

    微信公众号原文

    系统:Windows 7
    语言版本:Anaconda3-4.3.0.1-Windows-x86_64
    编辑器:JetBrains PyCharm Community Edition 2016.3.2

    • 本系列介绍traitstraitsui的一些基础知识
    • 今天介绍常用控件,List/Float/Int

    Part 1:示例

    1. 实现一个Excel表格的效果,今天只是实现展示效果
    2. 表格每一列设置数据格式,从动图上可以看出,如果输入不符合格式要求的单元格底色会变成红色,并且改动是无效的,有点数据库的感觉

    界面效果

    1.png

    运行效果

    1.gif

    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()
    
    

    代码截图

    2.png

    Part 3:部分代码解读

    1. 表格的每一行的各列是通过一个类ExcelValue来定义的
    2. 表格的一些特性是通过TableEditor来实现的,例如是否可以排序,是否可以编辑等
    3. age = Int(),规范了这一列只能输入整数
    4. math_score = Float(),规范了这一列只能输入浮点数

    问:

    1. 怎么向该表格内写入数据库中的数据呢,或者将该表格中的数据读出来
    2. 可以筛选不,像Excel那样
    3. 可以新增行吗
    4. 或者其它你想了解的问题,可以留言哦

    后续能够实现的功能会逐一介绍,敬请期待


    以上为本次的学习内容,下回见

    常按图片识别二维码,关注本公众号
    Python 优雅 帅气


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:【traits-traitsui-基础】-05-控件List-1

          本文链接:https://www.haomeiwen.com/subject/vhhepqtx.html