基于Python语言_GUI界面操作_pyqt5_早餐选择器

本节概要:

                 一、在python尝试测试
                 二、通过GUI操作/Pyqt5

经常因为早上不知道吃啥好,所以写了这么一个小程序,用于随机搭配早餐。


一、在python尝试测试

设计思路
A、创建早餐字典
B、随机获取2个早餐编号
C、通过早餐的ID来剔除2个早餐出现重复
D、通过for遍历出获取2个早餐的信息即key,value分别对应的是名称,和价格,进行计算得到结果
import  random

#定义早餐的存储字典
zaocan_dict = {
    "1": {"肉肠": 4}, "2": {"蛋肠": 4}, "3": {"肉蛋肠": 4},
    "4": {"炒米粉": 3}, "5": {"炒河粉": 3}, "6": {"炒面": 3},
    "7": {"小笼包": 4}, "8": {"蒸饺": 4}, "9": {"糯米鸡": 4},
    "10": {"糯米卷": 1.5}, "11": {"白馒头": 1}, "12": {"马拉糕": 1.5},
    "13": {"烧麦": 1.5}, "14""油条": 1.5, "15": {"白粥小碗": 2},
    "16": {"白粥大碗": 3}, "17": {"叉烧包": 1}, "18": {"肉包": 1},
    "19": {"豆沙包": 1}, "20": {"奶黄包": 1}, "21": {"菜包": 1},
    "22": {"黑糖馒头": 1}, "23": {"豆浆": 1}, "24": {"茶叶蛋": 1.5},
            }

#避免操作出现重复的样式
while True :
    #获取随机商品2个
    choice_one = random.randint(1, 23)
    choice_two = random.randint(1, 23)
    if choice_one == choice_two :
        continue
    else:
        print(choice_one)
        print(choice_two)
        break

#通过随机的编号得到2个商品信息
zaocan_one = zaocan_dict.get(str(choice_one))
zaocan_two = zaocan_dict.get(str(choice_two))

#测试结果为商品信息
print(zaocan_one)
print(zaocan_two)

for goods_one,value_one in zaocan_one.items():
    for goods_two,value_two in zaocan_two.items():
        
        #验证早餐最终搭配为2个,总价格多少
        # print(f"您选择的早餐为:{goods_one}+{goods_two}")
        # print(f"总价格为: {value_one+value_two}元")
        
        #方法2
        print(goods_one+"+"+goods_two)
        print(value_one+value_two)

#TODO 用户预期心理价格

运行的结果: 在这里插入图片描述

二、通过GUI操作/Pyqt5

一、在上面已经在文件当中进行了处理,并且能够得到结果,那么下一步就是来通过GUI来设计ui了,打开这个小兄弟
在这里插入图片描述

那么用到的label等如图所示:
在这里插入图片描述
完成的设计如这样,保存名称跟我窗口的显示一直一致就好了在这里插入图片描述
二、配置槽函数:
我这里就直接将第一部分设计的程序,定义了一个zaocan()函数对应
在这里插入图片描述
三、设计完成执行生存mainForm.py文件

通过这个指令在 pyuic5 -o mainForm.py show_choice_food.ui
在刚刚设计的ui文件目录下,执行这条语句,会生成一个mainForm.py文件
在这里插入图片描述
foods_chocie.py 是整合ex01.py 定义成一个zaocan()函数

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QMainWindow
from mainForm import Ui_MainWindow
import random


class PyQtMainEntry(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.a  = ""
        self.b  = ""

    def zaocan(self):
        """早餐处理"""

        #早餐商品信息储存
        zaocan_dict = {
                    "1":{"肉肠":4},"2":{"蛋肠": 4},"3":{"肉蛋肠": 4},
                    "4":{"炒米粉":3},"5":{"炒河粉":3} ,"6":{"炒面":3},
                    "7":{"小笼包":4} ,"8":{"蒸饺":4 },"9":{"糯米鸡":4},
                    "10":{"糯米卷":1.5 },"11":{"白馒头":1} ,"12":{"马拉糕":1.5 },
                    "13":{"烧麦":1.5} , "14""油条":1.5 ,"15":{"白粥小碗":2},
                    "16":{"白粥大碗":3} ,"17":{"叉烧包": 1},"18":{"肉包":1 },
                    "19":{"豆沙包": 1},"20":{"奶黄包":1} ,"21":{"菜包":1 },
                    "22":{"黑糖馒头":1 },"23":{"豆浆":1} ,"24":{"茶叶蛋":1.5 },
                       }

        # 避免操作出现重复的商品
        while True:
            # 获取随机商品2个
            choice_one = random.randint(1, 23)
            choice_two = random.randint(1, 23)
            if choice_one == choice_two:
                continue
            else:
                break

        # 通过随机的编号得到2个商品信息
        zaocan_one = zaocan_dict.get(str(choice_one))
        zaocan_two = zaocan_dict.get(str(choice_two))

        # 遍历出2个商品信息的key,values
        for goods_one, value_one in zaocan_one.items():
            for goods_two, value_two in zaocan_two.items():
                self.a = str(goods_one+"+"+goods_two)
                self.b = str(value_one+value_two)
                self.lineEdit_1.setText(self.a)
                self.lineEdit_2.setText(self.b)

        #https://blog.csdn.net/cpf945/article/details/90215725### 参考学习链接
        # 获取用户输入承受价格范围 TODO






if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = PyQtMainEntry()
    window.show()
    sys.exit(app.exec_())

运行这个文件就能操作了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44238683/article/details/105706984