制作流程
tkinter界面
项目功能及所需要模块
功能 | 模块 | 备注 |
---|
生产随机滤膜重量 | random | 生成随机重量及重量波动范围 |
生成随机时间 | time + random | str时间转换为时间戳,然后加随机时间戳,再转为str输出 |
数据保存xlsx或accdb | openpyxl或pywin32 os模块 | openpyxl或pywin32用于向数据表(库)内写入数据。 os模块用于获得工作路径,便于保存数据表(库) |
界面可视化 | tkinter | button、label、entry等 |
随机时间生成函数(参数:时间、分钟波动区间、格式)
def randomtime2(start_time, min_start, min_end, fmt):
st_time = start_time
newtimestamp = int(time.mktime(time.strptime(st_time, fmt))) + random.randint(min_start * 60, min_end * 60)
return time.strftime(fmt, time.localtime(newtimestamp))
时间格式转换函数(参数:时间、旧格式、新格式)
def time_fmt(str, old_fmt, new_fmt):
import time
a = time.strptime(str, old_fmt)
return time.strftime(new_fmt, a)
重量生成函数(参数:增重重量)
def weighting(g):
import random
weight = round(g, 5)
before_av = round(random.uniform(12.01235, 12.32351), 5)
ran1 = round(random.uniform(-0.00008, 0.00008), 5)
ran2 = round(random.uniform(-0.00008, 0.00008), 5)
before_first = round(before_av + ran1, 5)
before_second = round(before_av - ran1, 5)
after_av = round(weight + before_av, 5)
after_first = round(after_av + ran2, 5)
after_second = round(after_av - ran2, 5)
a = '{:.5f}'.format(before_first)+'g'
b = '{:.5f}'.format(before_second)+'g'
c = '{:.5f}'.format(before_av)+'g'
d = '{:.5f}'.format(after_first)+'g'
e = '{:.5f}'.format(after_second)+'g'
f = '{:.5f}'.format(after_av)+'g'
g = '{:.5f}'.format(weight)+'g'
return (a, b, c, d, e, f, g)
工作簿写值操作(参数:值、文件名)
def wk(value,name):
from openpyxl import *
import os
aim=Workbook()
aim_sheet=aim.active
aim_sheet['a1'] = value
path = os.getcwd() + '/' + str(name) + '.xlsx'
aim.save(path)
界面(tk)
import tkinter as tk
import time
class App():
def __init__(self,root):
self.title = root.title('名称')
self.lvmo1 = tk.IntVar()
self.time1 = tk.StringVar()
self.time1.set(str(time.strftime('%Y-%m-%d', time.localtime(time.time()))))
self.xiangmubianhao = tk.StringVar()
self.xiangmubianhao.set('xiangmu-2020-')
self.lvmo2 = tk.StringVar()
self.beizhu = tk.StringVar()
self.fenxiren = tk.StringVar()
self.shenheren = tk.StringVar()
self.g = tk.StringVar()
tk.Label(root,text='文件号:',width=7).grid(row=0,column=0,padx=5,pady=10)
tk.Entry(root,textvariable=self.lvmo1,width=12).grid(row=0,column=1,padx=5,pady=10)
tk.Label(root, text='项目编号:',width=7).grid(row=0, column=2, padx=5, pady=10)
tk.Entry(root, textvariable=self.xiangmubianhao,width=12).grid(row=0, column=3, padx=5, pady=10)
tk.Label(root, text='采样时间:',width=7).grid(row=0, column=4, padx=5, pady=10)
tk.Entry(root, textvariable=self.time1,width=12).grid(row=0, column=5, padx=5, pady=10)
tk.Label(root, text='滤膜号:',width=7).grid(row=1, column=0, padx=5, pady=10)
tk.Entry(root, textvariable=self.lvmo2,width=12).grid(row=1, column=1, padx=5, pady=10)
tk.Label(root, text='采尘重量:',width=7).grid(row=1, column=2, padx=5, pady=10)
tk.Entry(root, textvariable=self.g,width=12).grid(row=1, column=3, padx=5, pady=10)
tk.Label(root, text='备注:', width=7).grid(row=1, column=4, padx=5, pady=10,sticky=tk.W)
tk.Entry(root, textvariable=self.beizhu, width=12).grid(row=1, column=5, padx=5, pady=10)
tk.Label(root, text='分析人:',width=7).grid(row=2, column=0, padx=5, pady=10,sticky=tk.W)
tk.Entry(root, textvariable=self.fenxiren,width=12).grid(row=2, column=1, padx=5, pady=10)
tk.Label(root, text='审核人:',width=7).grid(row=2, column=2, padx=5, pady=10,sticky=tk.W)
tk.Entry(root, textvariable=self.shenheren,width=12).grid(row=2, column=3, padx=5, pady=10)
tk.Button(root,text='生成',width=12,command=self.函数名).grid(row=2, column=5, padx=5, pady=10)
root=tk.Tk()
App(root)
tk.mainloop()
打包(terminal)
pyinstaller 软件名.py -F -w -p C:/Users/666/PycharmProjects/untitled/venv/Lib/site-packages