缺省界面

TraitsUI库是一套建立在Traits库基础之上的用户界面库。它和Traits库紧密相连,如果读者已经设计好了一个从HasTraits继承的类,那么直接调用其configure_traits()方法,系统将会使用TraitsUI库自动生成对话框界面,以供用户交互式地修改对象的Trait属性。下面是一个简单的例子:

07-traitsui/traitsUI_default_view.py

编辑HasTraits对象的对话框

from enthought.traits.api import HasTraits, Str, Int

class Employee(HasTraits):
    name = Str
    department = Str
    salary = Int
    bonus = Int

Employee().configure_traits()

此程序创建一个Employee类的对象,然后调用configure_traits()显示出如【图:自动生成的Employee类的对话框(左)、提醒非法的输入数据并且使OK按钮无效(右)】(左)的缺省界面:

/tech/static/books/scipy/_images//traitsUI_default_view.png

自动生成的Employee类的对话框(左)、提醒非法的输入数据并且使OK按钮无效(右)

在此自动生成的界面中,所有的属性都采用文本框进行编辑,并且每个文本框前面都有一个文字标签,其文字根据Trait属性名自动生成:第一个字母变为大写,所有的下划线变为空格。对话框的最下面提供了OK和Cancel按钮以确定或者取消对Trait属性的修改。

由于salary属性定义为Int类型,当输入不能转换为整数的字符串时,输入框将以红色背景表示错误,并且OK按钮变成无效,如【图:自动生成的Employee类的对话框(左)、提醒非法的输入数据并且使OK按钮无效(右)】(右)所示。

没有写一行界面相关的代码,就能得到一个已经够实用的界面,应该还是很令人满意的。为了手工控制界面的设计和布局,就需要添加自己的代码了。

上一个主题

TraitsUI-轻松制作用户界面

下一个主题

用View定义界面

本页

loading...