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


三、可视化分析

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

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

相关文章
|
3天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的摄影网上预约管理系统
基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
15 6
基于Python+Vue开发的摄影网上预约管理系统
|
2天前
|
监控 数据挖掘 Python
🔍解锁Python系统编程新姿势!文件系统操作与I/O管理,让你玩转电脑每一个角落
【9月更文挑战第11天】Python不仅在数据分析和Web开发中表现出色,其系统编程能力同样强大。本文通过实例详细介绍了Python如何高效地进行文件系统操作与I/O管理。利用`os`和`pathlib`模块,你可以轻松遍历、创建、删除和重命名文件及目录。通过示例代码,展示了如何递归遍历目录和高效读写大文件。此外,文章还介绍了使用`watchdog`库进行文件监控及利用`concurrent.futures`模块实现并发I/O操作的方法,帮助你构建更复杂的应用。无论简单读写还是高级操作,Python都能助你轻松管理电脑的每一个角落。
11 1
|
2天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的鲜牛奶订购管理系统
基于Python+Vue开发的鲜牛奶订购管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的牛奶订购管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
8 0
|
2天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的民宿客房预订管理系统
基于Python+Vue开发的民宿客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的民宿客房预订管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
8 0
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
|
存储 区块链 数据安全/隐私保护
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
|
2天前
|
存储 人工智能 数据挖掘
Python编程入门:从基础到实战
【9月更文挑战第10天】本文将引导你进入Python编程的世界,从基本语法到实际项目应用,逐步深入。我们将通过简单的例子和代码片段,帮助你理解并掌握Python编程的精髓。无论你是编程新手还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起开始Python编程之旅吧!
|
2天前
|
机器学习/深度学习 数据挖掘 开发者
探索Python编程:从基础到进阶的旅程
【9月更文挑战第10天】本文是一篇深入浅出的技术感悟文章,通过作者自身的学习经历,向读者展示了如何从Python编程的基础入门逐步深入到高级应用。文章不仅分享了实用的代码示例,还提供了学习资源和建议,旨在鼓励初学者坚持学习,不断探索编程世界的奥秘。
|
2天前
|
存储 数据采集 人工智能
探索Python编程之美——从基础到进阶
【9月更文挑战第9天】本文是一篇深入浅出的技术分享文章,旨在引导读者从零基础开始掌握Python编程。我们将通过生动的实例和代码示例,探讨Python的基本语法、数据结构、函数、模块以及面向对象编程等核心概念。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python编程之旅吧!
17 11