系统:windows 7语言版本:anaconda3-4.3.0.1-windows-x86_64编辑器:jetbrains pycharm community edition 2016.3.2
本系列将探讨
traits和
traitsui的基础知识。本文将介绍两个常用的控件:
Str和
Button,即字符串输入框和按钮。
第一部分:示例
本示例提供了一个界面,用户可以在输入框中输入内容,并通过点击按钮显示输入的内容。以下是运行结果的截图:

第二部分:代码
代码语言:Python 代码运行次数:0
import win32api
import win32con
from traits.api import HasTraits, Str, Button, on_trait_change
from traitsui.api import View, Item, Group, HGroup, VGroup
class Ui(HasTraits):
input = Str()
button = Button("点我")
def _button_fired(self):
input_str = self.input
tips = "输入内容为:\n\n{0}".format(input_str)
win32api.MessageBox(0, tips, "提示", win32con.MB_OK)
g1 = [Item("input", style="simple", label="输入内容", tooltip="写入字符串", emphasized=True),
"_",
Item("button", style="simple", show_label=False)]
view = View(Group(*g1, label="控件Str-Button", show_border=True),
resizable=True, title="ui")
ui = Ui()
ui.configure_traits()代码截图:

第三部分:代码解读
整体代码分为三个部分:
- 控件定义
- 事件定义:使用
def
定义 - 视图定义:使用
View
定义
首先,导入所需的模块。然后定义界面类的类,并运行界面。
如何定义按钮点击事件的响应函数?定义一个函数,函数名称必须是固定的格式:
def _控件名称_fired(self):。
如何获取
Str控件中输入的值?使用
self.控件变量名,在本示例中是
self.input。
录入提示使用
tooltip属性,当鼠标移动到控件上时会显示提示。加粗强调使用
emphasized属性。
关于
Item类的其他属性,可以查看其源代码。在这里使用的是Eclipse的方式,查看源代码的快捷键为F12或者Ctrl加鼠标左键。查看快捷键可以通过keymap来查找,但有些可能无法使用或没有显示,可以通过百度搜索并尝试不同的快捷键。











