lanmor_699 2022-07-04 23:29 采纳率: 78.9%
浏览 54
已结题

写程序ui界面和生成exe文件

问题遇到的现象和发生背景

计算程序已经写好,需要写一个ui并生成exe
需要用tkinter写一个程序的ui,然后生成exe

问题相关代码,请勿粘贴截图

import tkinter as tk
import pandas as pd
import re
window = tk.Tk()
window.title('价格计算程序')
window.geometry('500x250')#乘号是字母x

e = tk.Entry(window,show=None)
e.pack()
detail = e.get()

detail实际要输入的内容: '木香750克,排草500克,桂枝400克,母丁香750克,红扣500克 枳壳500克,青果500克,烟桂500克,山楂400克、毛桃400克,干八角500克。'

def shuru():
data = pd.read_excel(r'C:\Users\Administrator\Desktop\价格别名表.xlsx', sheet_name=0) # 读取表格原始数据
# 提取表格中每一列的数据
name1 = data['名称']
# 价格的单位为克
price1 = data['价格1']
price2 = data['价格2']
price3 = data['价格3']
alias = data['别名']

2.将文本进行分离,并将名字,数量和单位分别存入列表

test = re.findall('([\u4e00-\u9fa5A-Za-z]+)(\d+)([\u4e00-\u9fa5A-Za-z]+)', detail)
# print(test)
name = [x[0] for x in test]
num = [int(x[1]) for x in test]
unit = [x[2] for x in test]
index = range(1, len(test) + 1)
jiage = []
amount = []
for i in range(len(name)):
    price = None
    amo = None
    for j in range(len(name1)):
        sl = alias[j].strip().split('、')
        if any(map(lambda x: x in name[i], sl)):
            name[i] = sl[0]
            if num[i] >= 250:
                price = price1[j]
            elif 100 < num[i] < 250:
                price = price2[j]
            else:
                price = price3[j]
            amo = num[i] / 500 * price
            break
    else:
        print('没找到', name[i])
    jiage.append(price)
    amount.append(amo)

img

# 3.创建字典
data = {
    "序号": index,
    "名称": name,
    "重量": num,
    "单位": unit,
    "价格": jiage,
    '金额': amount
}

# 4.创建DataFrame表格
df = pd.DataFrame(data)
# print(df)
# 5.写入excel
df.to_excel(r'C:\Users\Administrator\Desktop\结果.xlsx', index=None)

b = tk.Button(window,text='点击此处进行计算',width=12,height=2,command=shuru)
b.pack()
window.mainloop()

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

img

img

img

img

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月13日
  • 已采纳回答 7月5日
  • 修改了问题 7月4日
  • 创建了问题 7月4日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程