Python 开发:制作一个简易的点菜系统(附源码)

Stella981
• 阅读 888

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于海唤鱼杂记客栈 ,作者:海唤鱼杂记客栈

Python 开发:制作一个简易的点菜系统(附源码)

私信回复“资料”,即可免费领取Python实战案例讲解视频

Python GUI编程:高清电影在线观看平台制作,全网电影免费看

https://www.bilibili.com/video/BV1tz4y1o7Yc/

案例:

利用列表的形式设计一个用户选择界面

工具:

  • python
  • PyQt5

程序运行结果如下:

(1)初始界面

Python 开发:制作一个简易的点菜系统(附源码)

(2)选择菜单项

Python 开发:制作一个简易的点菜系统(附源码)

(3)选择多重时

Python 开发:制作一个简易的点菜系统(附源码)

Python 开发:制作一个简易的点菜系统(附源码)

设计程序如下:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(300, 300)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setGeometry(QtCore.QRect(20, 10, 260, 260))
        self.listWidget.setObjectName("listWidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)


        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)


        # 设置列表可以多选
        self.listWidget.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
        # 设置选中方式为整行选中
        self.listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        # 设置以列表形式显示数据
        self.listWidget.setViewMode(QtWidgets.QListView.ListMode)
        self.listWidget.setWordWrap(True)
        from collections import OrderedDict # 设置自动换行
        # 定义有序字典,作为List列表的数据源
        dict = OrderedDict({'蒸羊羔': '998元/份',
                            '蒸熊掌': '998元/份',
                            '蒸鹿尾儿': '998元/份',
                            '烧花鸭': '288/份',
                            '烧雏鸡': '288/份',
                            '烧子鹅': '288元/份',
                            '卤猪': '688元/份',
                            '卤鸭': '188元/份',
                            '酱鸡腊肉': '188元/份'})


        for key, value in dict.items():  # 遍历字典,并分别获取到键值
            self.item = QtWidgets.QListWidgetItem(self.listWidget)  # 创建列表项
            self.item.setText(key+': '+value)  # 设置项文本
            self.item.setToolTip(value)  #  设置提示文字
        self.listWidget.itemClicked.connect(self.gettext)


    def gettext(self,item):    # 自定义槽函数,获取列表选中项的值
        if item.isSelected():  # 判断项是否选中
            from PyQt5.QtWidgets import QMessageBox
            QMessageBox.information(MainWindow,"提示","您选择的是:"+item.text(),QMessageBox.Ok)




    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "点菜系统"))


import sys
# 主方法,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
   app = QtWidgets.QApplication(sys.argv)
   MainWindow = QtWidgets.QMainWindow() # 创建窗体对象
   ui = Ui_MainWindow() # 创建PyQt设计的窗体对象
   ui.setupUi(MainWindow) # 调用PyQt窗体的方法对窗体对象进行初始化设置
   MainWindow.show() # 显示窗体
   sys.exit(app.exec_()) # 程序关闭时退出进程

本文同步分享在 博客“松鼠爱吃饼干”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python数据可视化:折线图、柱状图、饼图代码
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。作者:godweiyang来源:算法码上来Python爬虫、数据分析、网站开发等案例教程视频免费在线观看https://space.bilibili.com/523606542!(https://oscimg.oschi
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Python爬取网易云音乐辑的图片、专辑名和专辑出版时间
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。作者:阿里波特来源:CSDNPython爬虫、数据分析、网站开发等案例教程视频免费在线观看https://space.bilibili.com/523606542!(https://oscimg.oschina.net/
Stella981 Stella981
3年前
Python列表去重的方式有很多,了解它们,进行性能的对比
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于Python实用宝典,作者Python实用宝典!(https://oscimg.oschina.net/oscnet/up0647b4a837d357255bd6f04110912d68.jpg)前言列表
Stella981 Stella981
3年前
Python js逆向 爬取X天下数据,好好看,好好学
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。之前讲过execjs这个库可以在python中运行js代码,这将极大的帮助我们解决逆向问题,找到加密位置不会重写怎么办、js代码太复杂怎么办,用execjs秒杀它。本次的受害者aHR0cHM6Ly9wYXNz
Stella981 Stella981
3年前
Python高考报考迁移图,各省考生“最想去哪”
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:小dull鸟2020年高考已经落下帷幕,各地高考成绩近期陆续出来了,各大网站也都被各类高考信息刷屏,小编凑巧发现百度推出了“高考搜索大数据”网页,吸引了上亿人次浏览。!Python高考报考迁移图,各省考生“最想去哪
Stella981 Stella981
3年前
Python 分析电影《南方车站的聚会》
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:程序员野客PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://note.youdao.com/noteshare?id3054cce4add8a909e784ad934f95