1说明:
=====
1.1TraitsUI是一套建立在Traits库基础上的用户界面库。
1.2系统将会使用TraitsUI自动生成一个界面,以供用户交互式地修改对象的trait属性。
1.3以traits为基础、以Model-View-Controller为设计思想的TraitUI库就是实现这一理想的最佳伴侣。
1.4TraitsUI——轻松制作用户界面:在开发科学计算程序时,我们希望快速实现一个够用的界面,让用户能够交互式的处理数据,而又不希望在界面制作上花费过多的精力。
1.5Traits库:为python的属性增加了类型定义的功能,除此之外他还提供了5个特殊的功能:
初始化:每个traits属性都有自己的默认值。
验证:是traits属性有明确的类型定义,只有满足定义的值时才能给它赋值。
代理:traits属性值可以代理给其他对象实例的属性。
监听:是为了当traits属性发生变化时,可以运行事先指定的函数。
可视化:是拥有traits属性的对象,可以方便的生成可以编辑traits属性的界面。

2准备:
=====
2.1官网:
2.2安装:
pipinstalltraits
3Helloworld:
==========
3.1代码:
,VGroup,LabelVGroup=HGroupVGroup(Label(label='Helloworld=你好世界-1'),Label('Helloworld=你好世界-2'),只能放在下面,但是显示却在上面窗口大小,标题名,按钮设置;width=1000,height=1000,title='Helloworld',buttons=['OK'],窗口大小可调节设置)可视化demo:那么直接调用其configure_traits方法,系统将会使用TraitsUI自动生成一个界面_traits()3.2图:

4代码:
,Delegate,Instance,Int,StrclassParent(HasTraits):初始化classChild(HasTraits):age=Int定义了father属性是Parent的实例,而此时father的默认属性是None通过Delagate为child对象创建了代理属性last_name,代理功能将使得_name和_name始终保持相同的值实例化对象c=Child()可视化_traits()
图:

5visible_when:
===========
5.1代码:
,Str,Range,Bool,,Group,View,LabelclassPerson(HasTraits):first_name=Str()last_name=Str()age=Range(0,120)legal_guardian=Str()school=Str()grade=Range(1,12)marital_status=Enum('single','married','divorced','widowed')registered_voter=Bool(False)military_service=Bool(False)gen_group=Group(Item(name='first_name'),Item(name='last_name'),Item(name='age'),label='GeneralInfo',show_border=True)child_group=Group(Item(name='legal_guardian'),Item(name='school'),Item(name='grade'),label='AdditionalInfoforminors',show_border=True,visible_when='age18',)adult_group=Group(Item(name='marital_status'),Item(name='registered_voter'),Item(name='military_service'),label='AdditionalInfoforadults',show_border=True,visible_when='age=18',)view=View(Group(gen_group,'10',Label("Using'visible_when':"),'10',child_group,adult_group),title='PersonalInformation',resizable=True,buttons=['OK'])demo=Person(first_name="Samuel",last_name="Johnson",age=16)if__name__=='__main__':_traits()5.2图:

6login:
======
6.1超级简单的登录框,代码:
,Str,IntclassModelManager(HasTraits):model_name=Str字符串model_file=Str数值if__name__=="__main__":model=ModelManager()_traits()
6.2图:
7treeeditor:
=========
7.1代码:
,Str,Regex,List,,View,TreeEditor,TreeNodeclassEmployee(HasTraits):constantlabelview=no_view,add=[Department],),TreeNode(node_for=[Company],auto_open=True,children='employees',label='=Employees',labelwithDepartmentnameview=View(['name']),add=[Employee]),TreeNode(node_for=[Employee],auto_open=True,label='name',窗口标题名。大小,按钮oktitle='CodeEditor',width=600,height=600,buttons=['OK'])demo=CodeEditorDemo()if__name__=="__main__":_traits()
8.2图:
===超级简单,简化GUI的布局===
自己整理并分享出来。





