美文网首页
【traits-traitsui-基础】-04-控件Range/

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

作者: Data_Python_VBA | 来源:发表于2019-03-01 21:31 被阅读0次

    微信公众号原文

    系统: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控件实现

    界面效果

    1.png

    运行效果

    1.gif

    Part 2:代码

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

    代码截图

    2.png

    Part 3:部分代码解读

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

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

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


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:【traits-traitsui-基础】-04-控件Range/

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