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

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈: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系统,用于管理超市商品的添加、删除及销售情况的可视化。通过模块化的设计,各个功能独立且相互协作,界面布局简洁明了,用户体验友好。


三、可视化分析

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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


  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值