鱼C论坛

 找回密码
 立即注册
查看: 5968|回复: 52

[作品展示] tkinter:16进制批量转换10进制

[复制链接]
发表于 2021-12-7 00:36:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小伤口 于 2021-12-7 00:35 编辑

前言

好久都没有发帖了还是来冒泡一下  ,不知道论坛的老熟人还在吗
恰逢现在正在做智能车,需要通过串口采集赛道宽度数据,但是通常发来的是16进制,如图

QQ截图20211206144528.png

一个个转换太麻烦了 ,就用 tkinter 写了一个简单的转换器

程序界面

QQ截图20211206235643.png

使用方法
批量转换的 16 进制数据每个之间都需要间隔一个空格然后复制到如图所示的位置

QQ截图20211207001106.png

例如你可以试试下面的16进制数据
20 21 22 22 22 23 24 25 25 25 26 26 27 27 28 28 28 29 29 2A 2A 2B 2B 
2C 2C 2D 2D 2E 2E 2F 2F 30 30 31 31 32 32 33 34 34 35 35 36 36 37 38 
38 39 39 3A 3A 3B 3B 3C 3C 3D 3D 3E 3E 3F 


代码

程序本身的功能对于大家可能来说没什么用但是如果是刚学 tkinter 的鱼油可以把这个代码当做一个模板来建造其他的
tkinter 程序


有详细注释
from tkinter import *


"""
*用途:将16进制转换为10进制
*参数:temp 16进制
*注意:每个16进制后面要加一个空格
*返回值:无
"""
def Conversion(temp):
    
    storageSixteen=[]#存储传来的16进制数
    deal=[]#将16进制进行一些处理
    storageTen=[]#存储转换后的10进制数
    
    text.delete(1.0,END)#先清空

    """
    将空格除去只保留16进制并存储到deal中
    """
    for i in temp:  
        if i==" ":
            x="".join(storageSixteen)
            deal.append(x)
            storageSixteen=[]
        else:
            storageSixteen.append(i)
            
    """
    开始将16进制转换为10进制并保存到storageTen中
    """
    for i in range(len(deal)):
        storageTen.append(int(deal[i],16))
        
    """
    一行显示10个数据,每个数据用逗号隔开,
    最后一个不加逗号
    """
    for i in range(len(storageTen)):
        if (i%10==0 and i!=0):
            text.insert(INSERT,"\n")#添加内容
        text.insert(INSERT,storageTen[i])#添加内容
        if (i!=len(storageTen)-1):
            text.insert(INSERT,",")#添加内容
            
    text.insert(INSERT,"\n\n")#添加内容
    text.insert(INSERT,"总共有:")#添加内容
    text.insert(INSERT,len(storageTen))#添加内容
    text.insert(INSERT,"个数据")#添加内容
    
            
"""
*用途:调用Conversion函数并获取文本框的内容
*参数:无
*返回值:无
"""        
def begin():
    temp=e.get()#文本框的内容
    Conversion(temp)#调用函数

"""
*用途:显示作者信息
*参数:无
*返回值:无
"""
def author():
    top=Toplevel()
    #设置窗口的大小宽x高+偏移量
    top.geometry('150x150')

    # 禁止窗口拉伸
    top.resizable(width=False, height=False)
    top.title('小伤口')#标题
    top.configure(bg='pink')
    mag=Message(top,text="""作者:小伤口
欢迎微信搜索小伤口
关注小伤口微信公众号^_^""",bg='LightSkyBlue',font=('幼圆',10))
    mag.pack()

"""
*用途:讲解如何使用
*参数:无
*返回值:无
"""
def manual():
    top=Toplevel()
    #设置窗口的大小宽x高+偏移量
    top.geometry('250x200')

    # 禁止窗口拉伸
    top.resizable(width=False, height=False)
    top.title('小伤口')#标题
    top.configure(bg='pink')
    mag=Message(top,text="""最上方输入16进制的数字
每一个数字之后都要加一个空格例如
06 A5 A4 09 (记得最后也要加一个空格)
然后点击开始转换即可变成10进制的数字
(ctrl+a全选 ctrl+c复制 ctrl+v粘贴)
""",bg='LightSkyBlue',font=('幼圆',10))
    mag.pack()

master = Tk()

#设置窗口的大小宽x高+偏移量
master.geometry('250x250')

# 禁止窗口拉伸
master.resizable(width=False, height=False)

#设置窗口标题
master.title('简易转换器')

#设置窗口颜色
master.configure(bg="LightPink")

#文本框(entry)
e=Entry(master,bg="LightPink",font=('幼圆',10))
e.delete(0,END)#清空内容

#文本
label=Label(master,text="""每个16进制后面
要加一个空格(末尾也要加)""",bg="LightPink",font=('幼圆',10),foreground="red")

#顶级菜单
menu=Menu(master)
menu.add_cascade(label='作者',command=author)
menu.add_cascade(label='使用说明',command=manual)

#文本框(text)
text=Text(master,bg="steelblue")

#按钮
b=Button(master,text='开始转换',command=begin,bg="steelblue",
relief=FLAT,activebackground="steelblue",font=('幼圆',10),foreground="black")

#各组件的位置分布
label.pack()
e.pack()
b.pack(pady=10)
text.pack()

master.config(menu=menu)#config设置选型的内容,将root和menubar关联起来
mainloop()


结尾
放两张我的智能车图片吧

(本人目前很菜连十字补线目前也是 bug 连连 )

IMG_20211206_144737.jpg

1718542435.jpeg

最后欢迎关注小伤口公众号
如果智能车到时候做的不错的话,考虑讲解一些处理方法和开源代码

评分

参与人数 7荣誉 +32 鱼币 +32 贡献 +18 收起 理由
不会起名字的我 + 5 + 5 + 3 鱼C有你更精彩^_^
yayc_zcyd + 2 + 2 鱼C有你更精彩^_^
柿子饼同学 + 5 + 5 + 3 加油
划句顾 + 5 + 5 + 3 感谢楼主无私奉献!
非凡 + 5 + 5 + 3 鱼C有你更精彩^_^
隔壁繁星吖 + 5 + 5 + 3 无条件支持楼主!
hrpzcf + 5 + 5 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 08:27:42 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 08:56:12 From FishC Mobile | 显示全部楼层

回帖奖励 +2 鱼币

智能车
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-7 11:22:10 From FishC Mobile | 显示全部楼层
hrpzcf 发表于 2021-12-7 08:56
智能车

可惜我的车子跑的很慢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 11:59:12 | 显示全部楼层

回帖奖励 +2 鱼币

芜湖!好厉害!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 12:18:45 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 13:01:59 | 显示全部楼层

回帖奖励 +2 鱼币

真大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 13:34:38 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 13:37:43 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 13:54:22 | 显示全部楼层

回帖奖励 +2 鱼币

不知道啥是智能库,但大受震撼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-7 14:21:03 | 显示全部楼层

谢谢支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-7 14:21:43 | 显示全部楼层
非凡 发表于 2021-12-7 13:54
不知道啥是智能库,但大受震撼

谢谢支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-7 14:22:13 | 显示全部楼层

没有,其实很菜了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 15:27:15 | 显示全部楼层

回帖奖励 +2 鱼币

学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 16:09:43 | 显示全部楼层

回帖奖励 +2 鱼币

厉害啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 16:48:53 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 18:05:11 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 20:19:12 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 20:28:35 | 显示全部楼层

回帖奖励 +2 鱼币

芜湖,小伤口超级nice啊,这些作品摩多摩多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-7 20:42:25 | 显示全部楼层

回帖奖励 +2 鱼币

萌新学习,谢谢大佬,大佬真好!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 18:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表