👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
系列文章目录
一、设计要求
该项目旨在创建一个简单的超市商品选购系统,利用Tkinter创建一个图形用户界面(GUI),允许用户添加、删除商品并生成商品销售情况的饼状图。
二、设计思路
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈
代码设计思路
2. 模块引入
代码首先引入了所需的模块,包括Tkinter(用于GUI的创建和管理)、messagebox和simpledialog(用于弹出消息框和简易对话框)以及matplotlib.pyplot(用于生成饼状图)。
import tkinter as tk
from tkinter import messagebox
from tkinter import simpledialog
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
3. Tkinter窗口初始化
初始化Tkinter窗口,并设置窗口标题为“超市商品选购系统(UI)”。
root_09 = tk.Tk()
root_09.title("超市商品选购系统(UI)")
4. 商品信息字典
使用一个空字典products_09
来存储商品信息,键为商品名称,值为商品价格。
products_09 = {}
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈
5. 添加商品功能
创建一个函数add_product
,当用户点击“添加商品”按钮时,该函数会被调用。函数从输入框获取商品名称和价格,并将其添加到字典products_09
中,随后更新商品列表框,并清空输入框。
def add_product():
product_name_09 = product_name_09_entry.get()
# 代码略(至少十行)...
# 代码略(至少十行)...
product_name_09_entry.delete(0, tk.END)
product_price_09_entry.delete(0, tk.END)
6. 删除商品功能
创建一个函数delete_product
,当用户点击“删除商品”按钮时,该函数会被调用。函数从列表框获取选中的商品名称,并将其从字典products_09
中删除,随后更新商品列表框。
def delete_product():
selected_product = product_listbox.get(tk.ACTIVE)
if selected_product:
del products_09[selected_product]
update_product_listbox_09()
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈
7. 生成饼状图功能
创建一个函数generate_pie_chart
,当用户点击“生成饼状图”按钮时,该函数会被调用。函数首先检查字典products_09
是否为空,如果为空则弹出提示框提醒用户添加商品信息。如果不为空,则提取商品名称和价格,使用matplotlib生成饼状图并显示。
def generate_pie_chart():
if not products_09:
messagebox.showinfo("提示", "请添加商品信息")
return
# 代码略(至少十行)...
# 代码略(至少十行)...
plt.pie(prices, labels=labels, autopct='%1.1f%%', startangle=140)
plt.title("商品销售情况")
plt.axis('equal')
plt.show()
8. 更新商品列表框
创建一个函数update_product_listbox_09
,用于更新商品列表框中的内容。每次添加或删除商品后调用该函数,以确保列表框显示的内容是最新的。
def update_product_listbox_09():
product_listbox.delete(0, tk.END)
for product in products_09.keys():
product_listbox.insert(tk.END, product)
9. 界面布局
使用Tkinter组件创建主界面,包括标签、输入框、按钮和列表框,并设置相应的布局和事件绑定。
product_name_09_label = tk.Label(root_09, text="商品名称:")
product_name_09_label.pack()
product_name_09_entry = tk.Entry(root_09)
product_name_09_entry.pack()
# 代码略(至少十行)...
# 代码略(至少十行)...
delete_button = tk.Button(root_09, text="删除商品", command=delete_product)
delete_button.pack()
generate_button = tk.Button(root_09, text="生成饼状图", command=generate_pie_chart)
generate_button.pack()
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈
10. 运行主循环
最后,运行Tkinter主循环,保持窗口处于活动状态,等待用户交互。
root_09.mainloop()
总结
该代码设计了一个简单直观的GUI系统,用于管理超市商品的添加、删除及销售情况的可视化。通过模块化的设计,各个功能独立且相互协作,界面布局简洁明了,用户体验友好。
三、可视化分析
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈