首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【traits-traitsui-基础】-04-控件Range/Enum

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

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

Part 1:示例

  1. 提供一个界面,可以进行两个数的加减运算
  2. 两个数本身是在一定范围内,通过Range控件实现

界面效果

运行效果

Part 2:代码

代码语言:javascript
复制
import win32api
import win32con

from traits.api import HasTraits, Range, Enum, Str, Button
from traitsui.api import View, Item, Group, HGroup, VGroup


class Ui(HasTraits):
    operator_1 = Range(1, 10, 10)
    operator_2 = Range(2, 20, 2)
    list_choice = ["+", "-"]
    choice_ = Enum(list_choice)
    result = Str()
    equal_str = Str(" = ")

    button = Button("计算")

    def _button_fired(self):
        operator_1_value = float(self.operator_1)
        operator_2_value = float(self.operator_2)
        choice_choose = self.choice_
        if choice_choose == "+":
            result_value = operator_1_value + operator_2_value
        else:
            result_value = operator_1_value - operator_2_value

        self.result = str(int(result_value))

        tips = "计算完毕"
        win32api.MessageBox(0, tips, "提示", win32con.MB_OK)

    g1 = Group(Item("operator_1", style="simple", label="数1  ", emphasized=True), label="因子1", show_border=True)
    g2 = Group(Item("choice_", style="simple", show_label=False), show_border=True)
    g3 = Group(Item("operator_2", style="simple", label="数2  ", emphasized=True), label="因子2", show_border=True)
    g4 = Group(Item("equal_str", style="readonly", show_label=False), show_border=True)
    g5 = Group(Item("result", style="simple", label="结果"), show_border=True)
    g6 = Group(Item("button", style="simple", show_label=False))

    view = View(VGroup(HGroup(g1, g2, g3, g4, g5), g6),
                resizable=True, title="加减计算器")


ui = Ui()
ui.configure_traits()

代码截图

Part 3:部分代码解读

  1. 整体框架:控件定义;函数定义;视图定义
  2. operator_1 = Range(1, 10, 10),取值范围为1-10,默认取值为10,最后一个数字表示默认取值
  3. Enum实现的效果就是一个下拉列表
  4. float实现转换为实数的效果,int转换为整数,str转换为字符串
  5. HGroup:效果是将其中的Group横向排列;同理VGroup竖向排列
下一篇
举报
领券