pychram写,一个有大的对话框窗口 库存管理软件,可以入库(记录时间)和出库(记录时间),查询库存,数据本地保存,输入数据可以下拉选择,数量默认为1
时间: 2023-09-22 14:05:41 浏览: 52
好的,这个库存管理软件可以使用Python的Tkinter GUI库来实现。以下是实现这个软件的基本步骤:
1. 创建一个主窗口,并设置它的标题和大小。
2. 在窗口中添加标签、文本框、下拉框等控件以便用户输入相关信息。
3. 创建一个按钮,用于记录入库或出库时间。
4. 将输入的数据保存在本地文件中,可以使用pickle模块来实现。
5. 创建一个查询按钮,允许用户查询库存信息并将结果显示在窗口中。
下面是一个简单的代码示例,可以实现上述功能:
```python
import tkinter as tk
import pickle
import time
class InventoryManager:
def __init__(self, master):
self.master = master
master.title("库存管理系统")
self.create_widgets()
def create_widgets(self):
# 创建标签和文本框
tk.Label(self.master, text="产品名称:").grid(row=0)
self.product_name = tk.Entry(self.master)
self.product_name.grid(row=0, column=1)
tk.Label(self.master, text="数量:").grid(row=1)
self.quantity = tk.Entry(self.master)
self.quantity.grid(row=1, column=1)
self.quantity.insert(0, '1')
# 创建下拉框
tk.Label(self.master, text="操作类型:").grid(row=2)
self.operation = tk.StringVar()
self.operation.set("入库")
self.operation_dropdown = tk.OptionMenu(self.master, self.operation, "入库", "出库")
self.operation_dropdown.grid(row=2, column=1)
# 创建按钮
self.submit_button = tk.Button(self.master, text="提交", command=self.submit)
self.submit_button.grid(row=3)
self.query_button = tk.Button(self.master, text="查询", command=self.query)
self.query_button.grid(row=3, column=1)
# 创建输出框
self.output = tk.Text(self.master, height=10, width=50)
self.output.grid(row=4, columnspan=2)
def submit(self):
data = {"产品名称": self.product_name.get(), "数量": int(self.quantity.get()), "时间": time.strftime("%Y-%m-%d %H:%M:%S")}
if self.operation.get() == "入库":
with open("inventory.pkl", "ab") as f:
pickle.dump(data, f)
self.output.insert(tk.END, "已记录入库信息\n")
else:
with open("inventory.pkl", "ab") as f:
pickle.dump(data, f)
self.output.insert(tk.END, "已记录出库信息\n")
def query(self):
with open("inventory.pkl", "rb") as f:
inventory = []
try:
while True:
data = pickle.load(f)
inventory.append(data)
except EOFError:
pass
result = ""
for item in inventory:
result += f"{item['时间']} {item['产品名称']} {item['数量']}个\n"
self.output.delete("1.0", tk.END)
self.output.insert(tk.END, result)
if __name__ == "__main__":
root = tk.Tk()
app = InventoryManager(root)
root.mainloop()
```
这里使用了pickle模块来保存数据,将每次操作的数据以字典的形式存储在一个二进制文件中。查询时从文件中读取所有数据,并将结果显示在输出框中。