• 基于tkwinter制作的exe小工具


    前言

    最近事没那么多,然后同事基于tkwinter制作了一款exe造单工具,感觉挺好玩的,然后叫同事分享了一下源码,自己去学习了tkwinter各大组件的相关语法及操作,所以写篇博客分享一下

    同事款工具

    下面是同事写的小工具,实现了不同环境的造单,以及相关cne订单的相关字段获取逻辑,以及从服务器中拿取造单时的sign
    在这里插入图片描述

    各版本实现功能

    mytool.py
    更新日志:
    1、仅定义了从uat造单,最终自动复制返回响应结果的orderid

    刚开始使用,然后先做了一个简单的造单自动去服务器拿sign,替换造单入参的sign,实现造单功能
    在这里插入图片描述

    mytoo2.0.py
    更新日志:
    1、2.0版本加入了uat,pre,instore环境的切换,最终自动复制请求入参的orderno,pre因打印sign的服务器不知道是那个展示还不能用

    定义了uat造单和调拨单造单的功能
    在这里插入图片描述

    mytool3.o.py
    更新日志:
    1、更改请求入参的输入文本框为滚动文本框,方便用户直接在文本框中操作请求入参

    因为entry输入框的问题不能实时的去找到相关的字段去修改,所以更改输入框控件为scrolledtext滚动框类型,适合相关的造单数据修改
    在这里插入图片描述

    mytool4.0.py
    更新日志:
    1、更新了uat和prd在服务器中拿sign的问题,instore因为通过geisign方法返回不了正确的sign,所以instore仍然从服务器中获取
    2、更新了创建订单按钮根据按钮去请求不同的接口,调用不同的方法

    这版更新了非调拨单,获取sign直接从方法里生成sign,而非从服务器拿取
    在这里插入图片描述

    mytool5.0.py
    更新日志:
    1、更新了消息弹窗从pyautogui更改为tkinter的message.showinfo控件

    这版更新了弹窗提醒的控件,因为发现同事用的是pyautotui的控件,但是tkwinter本身自己有控件,更改控件后,exe文件明显变小
    在这里插入图片描述

    mytool6.0.py
    更新日志:
    1、解决每次都需要复制订单数据到文本框的烦恼,增加插入数据按钮,根据需要造的不同类型,插入门店单订单数据以及调拨单订单数据
    2、修改调拨单单选框文字展示为Instore订单bug
    在这里插入图片描述

    mytool7.0.py
    更新日志:
    1、新增是否置顶按钮
    在这里插入图片描述

    mytool8.0.py
    更新日志:
    1、解决点击插入数据按钮后造单数据追加的问题
    2、解决提取调拨单提取的响应结果为true,但判断为True的bug
    3、解决插入数据的排序问题
    4、设置窗口不可缩放

    多次点击插入数据会变成数据追加,所以为了方便就加了个判断,点击插入数据后如果输入框有值就先清空
    在这里插入图片描述

    mytool9.0.py
    更新日志:
    1、修改造单异常情况弹窗为error弹窗
    在这里插入图片描述

    mytool10.0.py
    更新日志:
    1、新增类型选择框,根据不同的订单类型插入不同的造单数据到文本框
    2、修改插入数据后warehouseid很难查找到的问题,现已经把warehouseid放在插入数据的前几行
    3、修改提示语信息

    因为有很多订单类型,所以新增了根据订单类型插入不同订单数据的功能
    在这里插入图片描述

    mytool11.0.py
    更新日志:
    1、新增门店订单发货及签收按钮
    在这里插入图片描述

    mytool12.py
    更新日志:
    1、修改选择订单类型控件由spinbox更改为combobox

    因为spinbox的可读性有点差,切换也是只能点击切换,所以更改控件为combobox
    在这里插入图片描述

    mytool13.py
    更新日志:
    1、修改E360发货新增子界面,增加快递异常功能

    因为订单发货还还含有其他异常情况,所以新增个子界面做相关操作
    在这里插入图片描述

    mytool14.py
    更新日志:
    1.更新调拨单造单地址及服务器拿sign地址
    2.更改instore下单地址为预上线地址的问题

    调拨单造单地址变更
    在这里插入图片描述

    mytool15.py
    1.修改CNC造单数据
    2.提取相关公共的造单地址以及服务器地址,方便后续维护

    mytool16.py
    1.新增CNE订单发货功能

    在这里插入图片描述
    mytool17.py
    1.新增CNE根据环境判断进行uat或pre发货功能
    2.修复未查找到ebts发货id时,提示语难理解问题
    3.修改CNC造单参数更新后默认不为8939门店的问题

    因为订单下单成功后会有推送仓库失败的现象,所以新增一层判断查询数据库中是否有ebts回调的相关数据
    在这里插入图片描述

    mytool18.py
    1.修改了调拨单插入方式
    2.新增了调拨单uat和pre造单环境的选择
    3.删除调拨单单选框
    4.设置打开程序默认窗口居中
    5.新增复制订单id按钮

    调拨单先前只实现了uat的造单,近期需要做预上线验证,所以新增pre的造单,然后将调拨单的类型放在了combox下供选择,环境处只保留uat和pre
    在这里插入图片描述

    mytool19.py
    1.优化了某些代码以及判断条件
    2.新增了复制orderno功能

    因为经常需要用到orderno去查服务器日志,所以新增按钮去自动查找左侧插入数据中的orderno字段,通过pyperclip.copy方法自动复制到剪切板
    在这里插入图片描述

    mytool20.py
    1.新增cne订单子窗口
    2.加入了订单取消,拣货以及发货功能
    3.修改了子窗口弹出位置

    新增了一个子界面集成了cne订单的相关操作
    在这里插入图片描述

    结语

    短短一个月更新了20版,这版本更新太快了,想到有啥功能就往上加了,都是平常需要用到的功能,分享给了测试组的同伴,相信效率会有相当大的提升!!

  • 相关阅读:
    DV SSL证书
    Pair 和 Triple 应用实践/获取指定时间间隔
    基于JAVA南京传媒学院门户网计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    【夜读】自我提升的8个好习惯,迷茫时看一看
    【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(一)
    upload-labs第十二关教程
    【毕业设计】基于Stm32的智能疫情防控门禁系统 - 单片机 嵌入式 物联网
    SpringMVC项目整合SSM统一结果封装
    【算法】滑动窗口题单——4.不定长滑动窗口(求子数组个数)
    2013 ~【VUE+ ElementUI】——【上传、下载】进度计算
  • 原文地址:https://blog.csdn.net/DFireTesting/article/details/126290006