用python+tkinter写个校验和工具

用python+tkinter写个校验和工具

  • 编译环境
  • tkinter模块
    • 创建窗口
    • 输入数据
    • 按钮
    • 一字节校验和计算
    • 最终效果

编译环境

操作系统:win10(64位)
python版本:3.7
IDE:PyCharm 2018.1.2 x64
引用模块:tkinter

tkinter模块

tkinter 模块是 Python 的标准 Tk GUI 工具包的接口 。

创建窗口

import tkinter as tk
root = tk.Tk()
root.title("检验和计算工具")#设置窗口标题
root.geometry("600x200") #设置窗口大小,注意中间是小写字母x

输入数据

Label组件用于在窗体显示字符,参数text表示显示的字符串,font用于设置字体和大小;
place用于指定字符在窗体显示的具体位置
stringvar属于tkinter的对象,用于跟踪输入数据(以字符串形式跟踪)
Entry用于创建输入文本框,参数textvariable用于获取输入数据,font用于设置字体和大小

tk.Label(root, text="输入数据(Hex):", font=("宋体",12)).place(x=10,y=50)#输入数据标签
var_data = tk.StringVar()
rr=tk.Entry(root,textvariable = var_data,font=("宋体",12)).place(x=120,y=50,width=400)

按钮

Button组件用于在窗体生成按钮,参数text显示按钮的文本描述,font用于字体设置,width和height用于设置按钮的宽和高,command用于引用当按下按钮后的操作函数,对于本文就是校验和计算函数

tk.Button(root, text="校验和计算", font=('Arial', 12), width=10, height=1, command=CheckSum).place(x=250,y=150)

一字节校验和计算

输入的数据为一字节十六进制数,并用空格隔开,使用entry输入框获取的数据为字符串类型,需要剔除多余的0x字符(如果有的话);
算法需要根据空格来做数据的间隔提取,如果是空格,空格前两个字符为十六进制数的字符串形式,转换为十六进制数后就可以进行累加和了;需要注意的是:最后一个字符,往往不是空格,需要把最后两个字符提取为十六进制数进行累加和计算。

def CheckSum():
    data = var_data.get()#获取输入的数据,为字符串
    data = data.replace('0x','')#去掉多余的0x字符
    z = 0
    count = 0
    isnum = False
    for i in data:
        if i.isspace():
            if isnum == True:
                y = data[count - 2:count]
                z = (z + int(y, 16)) & 0xff
            isnum=False
        else:
            isnum=True
        count = count + 1
        if count == len(data):
            if isnum == True:
                y = data[count - 2:count]
                z = (z + int(y, 16)) & 0xff
    tk.Label(root, text=hex(z), bg = "green",font=("宋体", 12)).place(x=100, y=120)  # 校验和标签

最终效果

用python+tkinter写个校验和工具_第1张图片

你可能感兴趣的:(Python)