python实现:界面是仓库布局图,将仓储分为10列,每一列分为前中后三部分,每一部分录入名字,输入名字查看位置,点击位置查看所有名字,点击位置录入名字
时间: 2024-03-11 12:50:14 浏览: 60
好的,我可以帮你实现这个功能。为了实现界面化的操作,我们可以使用 Python 的 GUI 库 tkinter 来创建图形界面。
以下是实现代码:
```python
import tkinter as tk
# 初始化仓库,用空字符串表示每个位置上没有名字
warehouse = [['' for _ in range(3)] for _ in range(10)]
# 创建主窗口
root = tk.Tk()
root.title("仓库管理系统")
# 创建标签和按钮
labels = []
buttons = []
for i in range(10):
for j in range(3):
# 创建标签,用于显示每个位置上的名字
label = tk.Label(root, text="", width=10, height=2, font=("Arial", 12))
label.grid(row=j+1, column=i+1)
labels.append(label)
# 创建按钮,用于录入名字和查看该位置上的所有名字
button = tk.Button(root, text="录入/查看", width=10, height=1, font=("Arial", 12))
button.grid(row=j+4, column=i+1)
buttons.append(button)
# 根据名字查找位置
def find_location(name):
for i in range(10):
for j in range(3):
if name in warehouse[i][j]:
return f"{i+1}列{j+1}部分{warehouse[i][j].index(name)+1}号位置"
return "未找到该名字"
# 根据位置查找所有名字
def find_names(location):
i, j, k = map(int, location.split('列')[1].split('部分')[0:2])
return warehouse[i-1][j-1]
# 录入名字
def input_name(button):
index = buttons.index(button)
i, j = index % 10, index // 10
names = input(f"请输入第{i+1}列第{j+1}部分的名字,多个名字用空格隔开:")
warehouse[i][j] = names.split()
labels[index].config(text=names)
# 查看名字
def show_names(button):
index = buttons.index(button)
i, j = index % 10, index // 10
names = find_names(f"{i+1}列{j+1}部分1号位置")
if names:
tk.messagebox.showinfo(title="位置信息", message=f"{i+1}列{j+1}部分所有名字:\n{' '.join(names)}")
else:
tk.messagebox.showinfo(title="位置信息", message="该位置上没有名字")
# 查找位置
def search_location():
name = entry.get()
location = find_location(name)
if location != "未找到该名字":
tk.messagebox.showinfo(title="名字信息", message=f"{name}的位置:{location}")
else:
tk.messagebox.showinfo(title="名字信息", message="未找到该名字")
# 创建标签、文本框和按钮,用于查找名字
search_label = tk.Label(root, text="请输入要查找的名字:", font=("Arial", 12))
search_label.grid(row=0, column=0)
entry = tk.Entry(root, font=("Arial", 12))
entry.grid(row=0, column=1)
search_button = tk.Button(root, text="查找", width=10, height=1, font=("Arial", 12), command=search_location)
search_button.grid(row=0, column=2)
# 绑定按钮事件
for button in buttons:
button.config(command=lambda button=button: show_names(button))
button.bind("<Double-Button-1>", lambda event, button=button: input_name(button))
# 进入消息循环
root.mainloop()
```
运行代码后,会弹出一个窗口,显示仓库的布局图。每个位置上的标签显示为空字符串,按钮显示为“录入/查看”。
要录入名字,双击该位置的按钮,会弹出一个对话框,要求输入该位置上的名字,多个名字用空格隔开。输入完毕后,该位置上的标签会显示输入的名字。
要查看该位置上的所有名字,单击该位置的按钮,会弹出一个消息框,显示该位置上的所有名字。如果该位置上没有名字,会显示“该位置上没有名字”。
要查找某个名字的位置,输入要查找的名字,单击“查找”按钮,会弹出一个消息框,显示该名字所在的位置。如果未找到该名字,会显示“未找到该名字”。
通过这个界面,你可以方便地录入、查看和查找仓库中的名字。
阅读全文