【Python】Tkinter超市商品选购系统 [简易版] (源码)【独一无二】

简介: 【Python】Tkinter超市商品选购系统 [简易版] (源码)【独一无二】

一、设计要求

该项目旨在创建一个简单的超市商品选购系统,利用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系统,用于管理超市商品的添加、删除及销售情况的可视化。通过模块化的设计,各个功能独立且相互协作,界面布局简洁明了,用户体验友好。


三、可视化分析

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 选购 ” 获取,拿来即用,只回复文字哦。👈👈👈

相关文章
|
2天前
|
机器学习/深度学习 传感器 存储
使用 Python 实现智能地震预警系统
使用 Python 实现智能地震预警系统
88 61
|
6天前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
14 2
|
6天前
|
机器学习/深度学习 存储 算法
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
16 1
|
9天前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
35 1
|
6天前
|
Python
Python实现系统基础信息
Python实现系统基础信息
19 0
|
6天前
|
机器学习/深度学习 缓存 数据可视化
基于Python_opencv的车牌识别系统
基于Python_opencv的车牌识别系统
14 0
|
11天前
|
机器学习/深度学习 Python
基于python-django的肺结核图片识别系统
基于python-django的肺结核图片识别系统
11 0
|
11天前
|
SQL 前端开发 Python
基于python-django的neo4j人民的名义关系图谱查询系统
基于python-django的neo4j人民的名义关系图谱查询系统
20 0
|
11天前
|
数据采集 前端开发 数据库
基于python-django的neo4j化学关系材料图谱系统
基于python-django的neo4j化学关系材料图谱系统
21 0
|
11天前
|
Python
基于python-django的matlab护照识别网站系统
基于python-django的matlab护照识别网站系统
12 0