数据类型转换工具


前言

目标:可视化界面实现进制间转换,并形成可执行文件;
实现平台:Pycharm , Python3.7;
第三方库:PySimpleGUI , re;
主要知识:
利用PySimpleGUI实现界面显示;
python.py文件如何转化为可执行文件.exe


一、数据类型转换工具展示

在这里插入图片描述

二、实现步骤

1.实现代码

import PySimpleGUI as sg
import re


#实现布局
layout = [[]]
layout.append([sg.Text(" "*200)])
layout.append([sg.Text("选择您想进行的转换类型:",font = (20)),
               sg.Combo(values=("hex-ascii","hex-bin","bin-hex","hex-dec","dec-hex"),default_value="hex-ascii",readonly=True,font = (20),k="-COMBO-"),    #k参数即key,它表示当前控件Combo目前的值;是该窗口元素的身份
               sg.Text(" "*20),
               sg.Button("确认转换",button_color="pink")
               ])

layout.append([sg.Text(" "*200)])

layout.append([sg.Text("转换前:",font = (20)),sg.Text("",key = "-trn_bef-",font = (30),text_color="yellow"),
               sg.Text(" "*90),
               sg.Text("转换后:",font = (20)),sg.Text("",key = "-trn_aft-",font = (30),text_color="yellow"),
               ])
layout.append([sg.MLine("/* 分隔符请使用空格或换行符\\n */",key='-trn_bef_text-',font=('宋体',15),size=(35, 20)),sg.Text(' ' *20 ),
               sg.Multiline(key = '-trn_aft_text-',font=('宋体',15),size=(30, 20),autoscroll=True)])

layout.append([sg.Text(" "*200)])

window = sg.Window("数据类型转换工具",layout)               #以layout为布局创建窗体




while True:
    event,values = window.read()                                 #监听事件
    if event == sg.WIN_CLOSED:
        break
    elif event == "确认转换" or event == '\r':
        c = ""
        '''
        获取转换前和转换后的数据类型,并显示在窗口上
        '''
        cur_type = window["-COMBO-"].get()
        list = cur_type.split("-")
        trn_bef = list[0]
        trn_aft = list[1]
        window["-trn_bef-"].update(trn_bef)
        window["-trn_aft-"].update(trn_aft)

        '''
        处理数据
        '''
        bef_data = window["-trn_bef_text-"].get()
        bef_data_list = re.split("[ ,\n]",bef_data)     #以" " 或 换行符作为分隔符
        print(bef_data_list)
        for i in bef_data_list:
            if i == " " or i == "\n":                
                continue
            else:
                if cur_type == "hex-ascii":
                    reshex_ascii = chr(int(i, 16)) + " "
                    c = c  + reshex_ascii
                elif cur_type == "hex-bin":
                    reshex_bin = bin(int(i, 16))
                    lacklen = 8 - len(reshex_bin[2:])
                    reshex_bin = "0" * lacklen + reshex_bin[2:] + " "
                    c = c  + reshex_bin
                elif cur_type == "bin-hex":
                    resbin_hex = hex(int(i, 2))
                    c = c  + resbin_hex[2:].title()+ " "
                elif cur_type == "hex-dec":
                    reshex_dec = str(int(i, 16))+ " "
                    c = str(c)  + str(reshex_dec)
                elif cur_type == "dec-hex":
                    reshex_dec = hex(int(i))
                    lacklen = 2 - len(reshex_dec[2:])
                    reshex_dec = "0" * lacklen + reshex_dec[2:]+ " "
                    c = c + reshex_dec
                else:
                    c = "Please choose transfer type!"
        window["-trn_aft_text-"].Update(c)                      #将值名为"-trn_aft_text-"的窗口内容进行更新
    else:
        continue


window.close()

2.执行结果

在这里插入图片描述

3…py文件转.exe文件

  1. 安装pyinstaller包;控制台Terminal输入:pip install pyinstaller;

  2. Terminal输入:pyinstaller -F -w main.py;
    即可生成可执行文件.exe;
    生成的可执行文件放在同目录dist下;
    其中-F(注意大写)是将所有库文件打包成一个可执行文件,windows下是exe;
    -w是禁止弹出黑色控制台窗口。

  3. 其他参数
    在这里插入图片描述

  4. 拓展:为.exe添加.icon图标
    Terminal输入: pyinstaller -F -w -i G:\Pycharm\guidesign\instance.ico main.py

注意:png 格式直接将后缀改成ico会报错,无法成功生成;

附:图片转.ico文件网站:PNG转换成ICO
免费的ico网站:iconfont
ICONFINDER

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值