【pyqt6】用pyqt做一个点菜小程序

用pyqt做一个点菜小程序

  • 前言
    • 1.pyqt6
    • 2. 功能介绍
    • 3.程序实现

前言

在本文中,我们将使用 PyQt6(Python的GUI库)创建一个简单的点菜小程序。该程序允许用户从菜单中选择菜品,将其添加到订单中,并通过点击“下单”按钮查看订单的总价。

1.pyqt6

随着Python在不同领域的应用不断增加,开发GUI应用程序成为一项重要的技能。PyQt是一个强大的工具,用于创建跨平台的图形用户界面,而PyQt6是其最新版本。

2. 功能介绍

菜单选项:程序提供了一份菜单,用户可以从中选择心仪的菜品。

已点菜品列表:显示用户已点的菜品,包括菜品名称和价格。

实时总价:在用户点菜的过程中,程序会实时更新总价,使用户清晰了解订单的费用。

下单按钮:点击该按钮后,弹出订单详情,包括已点菜品和总价。

3.程序实现

具体代码如下:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton, QListWidget, QMessageBoxclass DianCaiApp(QWidget):def __init__(self):super().__init__()self.menu = {"宫保鸡丁": 25, "鱼香肉丝": 20, "红烧排骨": 30, "清炒时蔬": 15, "麻辣香锅": 35}self.selected_dishes = []  # 存储已选菜品self.init_ui()def init_ui(self):# 菜单选项menu_layout = QVBoxLayout()menu_layout.addWidget(QLabel("菜单选项"))for dish, price in self.menu.items():btn = QPushButton(f"{dish} - {price}元")btn.clicked.connect(lambda ch, dish=dish, price=price: self.add_dish(dish, price))menu_layout.addWidget(btn)# 已点菜品显示及下单按钮order_layout = QVBoxLayout()order_layout.addWidget(QLabel("已点菜品"))self.order_list = QListWidget()order_layout.addWidget(self.order_list)order_btn = QPushButton("下单")order_btn.clicked.connect(self.place_order)order_layout.addWidget(order_btn)# 显示实时总价self.total_price_label = QLabel("实时总价:0元")order_layout.addWidget(self.total_price_label)# 整体布局main_layout = QVBoxLayout()main_layout.addLayout(menu_layout)main_layout.addLayout(order_layout)self.setLayout(main_layout)self.setWindowTitle("点菜小程序")self.show()def add_dish(self, dish, price):self.selected_dishes.append((dish, price))self.update_order_list()def update_order_list(self):self.order_list.clear()for dish, price in self.selected_dishes:self.order_list.addItem(f"{dish} - {price}元")total_price = sum(price for dish, price in self.selected_dishes)self.total_price_label.setText(f"实时总价: {total_price}元")def place_order(self):total_price = sum(price for dish, price in self.selected_dishes)order_summary = "\n".join([f"{dish} - {price}元" for dish, price in self.selected_dishes])msg_box = QMessageBox()msg_box.setWindowTitle("订单详情")msg_box.setText(f"已点菜品:\n{order_summary}\n\n总价:{total_price}元")msg_box.exec()# 清空已点菜品和更新界面self.selected_dishes = []self.update_order_list()if __name__ == '__main__':app = QApplication(sys.argv)diancai_app = DianCaiApp()sys.exit(app.exec())

运行代码效果如下:
在这里插入图片描述
点击下单之后:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pandas ------ 向 Excel 文件中写入含有合并表头的数据

Pandas ------ 向 Excel 文件中写入含有合并表头的数据 推荐阅读引言正文 推荐阅读 Pandas ------ 向 Excel 文件中写入含有 multi-index 和 Multi-column 表头的数据 引言 这里给大家介绍一下如何向 Excel 中写入带有合并表头的数据。 正文 import pandas as pddf1 pd.D…

嵌入式操作系统分类和任务管理

目录 嵌入式操作系统分类 1、按软件结构分类 任务管理 1、多道程序 2、进程 3、线程 4、任务 嵌入式操作系统分类 1、按软件结构分类 按照软件的体系结构,可以把嵌入式操作系统分为三大类:单体结构、分层结构和微内核结构。它们之间的差别主要表现在两个方面…

DL专栏—笔记目录

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要是记录工作中、学习中关于AI(Deep Learning)相关知识并分享。 😊😊&#x1f…

电脑自动开机播放PPT的解决方案

客户有个需求,要求与LED大屏幕连接的电脑定时自动播放PPT。为了安全电脑在不播放的时段,必须关机。 目录 1、使用“时控插座”并进行设置 2、戴尔电脑BIOS设置(上电开机) 3、设置Windows自动登录 4、任务计划设置 5、启动Au…

一个响指,代码生成!华为云CodeArts Snap正式公测

月初,华为云CodeArts Snap正式开启公测,这是一款基于华为云研发大模型的智能化编程助手,旨在为开发者提供高效且智能的编程体验,提升研发人员的单兵作战能力。 如今,生成式AI爆发式增长,大模型商用节奏加快…

Java面试题SPI

Java面试题SPI 文章目录 Java面试题SPISPI何谓 SPI?SPI 和 API 有什么区别?SPI 的优缺点? 文章来自Java Guide 用于学习如有侵权,立即删除 SPI 关于 SPI 的详细解读,请看这篇文章 Java SPI 机制详解 。 何谓 SPI? SPI 即 Ser…

Excel:将截面数据转换成面板数据

原始截面数据如下: 步骤:数据——自表格/区域 点击确定,出现下图: 然后,在这个界面选择:“转换”——“逆透视列”下选择逆透视其他列。会出现面板数据形式。 然后,点击“主页”——关闭并上载即…

金融OCR领域实习日志(一)——OCR技术从0到1全面调研

一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…

2024年,这个铁饭碗一定不要错过!

说到铁饭碗这个话题,你会想到什么职业?有的人可能会想到公务员、老师、医生,有的人会想到企业家。 其实每个人对于铁饭碗的定义都不同,为什么父辈的人觉得只要当了公职人员就是可以吃一辈子的铁饭碗?因为他们生活中接触…

婴儿营养之道:新生儿补充蛋白质的关键

引言: 蛋白质是新生儿生长发育所必需的重要营养物质,对于肌肉、组织和免疫系统的发展至关重要。在新生儿期间,适量的蛋白质摄入有助于建立健康的身体基础,但在补充时需谨慎选择和控制。本文将深入探讨蛋白质的作用、补充时机&…

容器安全工具

容器安全工具是用于保护和监控容器环境安全的工具。它们提供了一系列功能,包括容器镜像的漏洞扫描、运行时监控、事件日志记录、访问控制、运行权限管理等。以下是一些常见的容器安全工具: 1. Docker Bench Security:用于检查Docker环境配置的安全性,提供一些最佳实践建议…

Hadoop基本概论

目录 一、大数据概论 1.大数据的概念 2.大数据的特点 3.大数据应用场景 二、Hadoop概述 1.Hadoop定义 2.Hadoop发展历史 3.Hadoop发行版本 4.Hadoop优势 5.Hadoop1.x/2.x/3.x 6.HDFS架构 7.Yarn架构 8.MapReduce架构 9.大数据技术生态体系 一、大数据概论 1.大数…

GitLab入门指南:上传与下载操作一网打尽

GitLab简介: GitLab是一个基于Git的开源仓库管理系统,提供了一个Web界面的Git存储库管理器,并集成了多种开发工具的功能,如代码审查、问题跟踪、持续集成和持续部署等。GitLab可以在本地服务器上部署,也可以使用其提供…

单核QPS近6000S,陌陌基于OceanBase的持久化缓存探索与实践

挚文集团于 2011 年 8 月推出了陌陌,这款立足地理位置服务的开放式移动视频社交应用在中国社交平台领域内独树一帜。陌陌和探探作为陌生人社交领域的主流应用,涵盖了多种核心业务模块,包括直播服务、附近动态功能、即时通讯(IM&am…

计算机网络 第4章(网络层)

系列文章目录 计算机网络 第1章(概述) 计算机网络 第2章(物理层) 计算机网络 第3章(数据链路层) 计算机网络 第4章(网络层) 文章目录 系列文章目录1. 概述1.1 简介1.2 总结 2. 网络…

大数据信用查询系统能查到什么呢?

在金融助贷行业,大数据有叫大数据信用或者网贷大数据,在申贷的时候,想必大多数人都有听说过,很多人因为大数据不良的原因申贷被拒过,那大数据信用查询系统能查到什么呢?本文就简单为大家总结几点大数据信用查询的内容…

JavaEE之多线程编程:5. 死锁(详解!!!)

文章目录 一、死锁是什么二、关于死锁的三种形式三、如何避免死锁 一、死锁是什么 死锁是这样的一种情形:多个同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 【举个例子理解死…

Netty Reactor 模式解析

目录 Reactor 模式 具体流程 配置 初始化 NioEventLoop ServerBootstrapAcceptor 分发 Reactor 模式 在刚学 Netty 的时候,我们肯定都很熟悉下面这张图,它就是单Reactor多线程模型。 在写Netty 服务端代码的时候,下面…

如何使用docker实现越权漏洞-webug靶场搭建(超详解)

越权漏洞-webug靶场搭建 1.打开docker systemctl start docker 2.查找webug docker search webug 3.拉取docker.io/area39/webug 镜像 docker pull docker.io/area39/webug 4.查看镜像 docker images 5.创建容器 docker run -d -p 8080:80 --name webug docker.io/area39/we…

Database history tablesupgraded

zabbix升级到6之后,配置安装完成会有一个红色输出,但是不影响zabbix使用,出于强迫症,找到了该问题的解决方法。 Database history tables upgraded: No. Support for the old numeric type is deprecated. Please upgrade to nume…