Python自制随机食物生成器(食物可自拟)

前言

新年好啊 朋友们

现在年初八都开始上班了 一部分学生也开始上课咯 当然现在还在家躺着的 真羡慕啊

每次不在家吃饭 一出来就要考虑该吃啥 啥都想吃 但是兜里条件有限

所以就只能极限选择咯 为了不再纠结 咱就是直接做个 随机食物挑选器

效果

有人就说 这网上一抓一大把 没必要自己做个
emm网上的一些固定的 也不见得是咱自己喜欢吃的 还不如自己拟个表单 导入进去就能开始随机选择了

话不多说 咱就直接看看效果吧

吃啥吃啥 吃椰子鸡哈哈哈哈

请添加图片描述

代码

模块准备

需要源码的看 效果图左上方数字 ,或者点击文章末尾名片~

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

from qdarkstyle import load_stylesheet_pyqt5

import os
import sys
import time
import random

这个领取源码后 也有个数据单哦

朋友们自己可以改的 不然就没有数据出来

def __init__(self, parent=None):
    super(WorkThread, self).__init__(parent)
    self.parent = parent
    self.working = True

def __del__(self):
    self.working = False
    self.wait()

def run(self):
    data_list = self.parent.data_list
    if len(data_list) >= 1:
        ran = random.randint(20, 40)
        print('遍历次数:', ran)
        for a in range(ran):
            name = random.choice(data_list)
            self.trigger.emit(name)
            print(name)
            time.sleep(0.6)
        self.finished.emit(True)
    else:
        self.trigger.emit('无数据')

子线程调用

def init_ui(self):
    self.thread_ = WorkThread(self)
    self.thread_.trigger.connect(self.set_name)
    self.thread_.finished.connect(self.finished)

应用初始化信息

self.setWindowTitle('源码自取君羊309488165 ')
self.setWindowIcon(QIcon('随机食物.ico'))
self.setFixedSize(500, 350)

喜爱食物布局

vbox_name = QVBoxLayout()
self.current_name = QLabel()
self.current_name.setText('随机挑选')
self.current_name.setStyleSheet(
    'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";')

vbox_name.addWidget(self.current_name)
vbox_name.setAlignment(Qt.AlignCenter)

开始信息布局

vbox_start = QVBoxLayout()
self.start_btn = QPushButton()
self.start_btn.setText('开始挑选')
self.start_btn.setFixedSize(250, 50)
self.start_btn.setStyleSheet(
    'font-size:30px;font-weight:bold;text-align:center;font-family:"Microsoft JhengHei";')
self.start_btn.clicked.connect(self.start_btn_click)

vbox_start.addWidget(self.start_btn)
vbox_start.setAlignment(Qt.AlignCenter)
vbox_start.addSpacing(80)

数据信息布局

vbox_data = QHBoxLayout()
self.message = QLabel()
self.message.setText('源码自取君羊309488165')
self.message.setStyleSheet(
    'font-size:12px;')

self.import_btn = QPushButton()
self.import_btn.setText('导入数据')
self.import_btn.setFixedSize(90, 25)
self.import_btn.clicked.connect(self.import_btn_click)

vbox_data.addWidget(self.message)
vbox_data.addStretch(1)
vbox_data.addWidget(self.import_btn)

整体布局

完整 源码 点击 此处 领取 即可

    vbox = QVBoxLayout()
    vbox.addLayout(vbox_name)
    vbox.addLayout(vbox_start)
    vbox.addLayout(vbox_data)

    self.setLayout(vbox)

def start_btn_click(self):
    if self.start_btn.text().strip() == '开始挑选':
        self.thread_.start()
    else:
        self.start_btn.setText('开始挑选')

def set_name(self, name):
    self.current_name.setText(name)

def finished(self, finished):
    if finished is True:
        self.start_btn.setText('今天就吃这个了')

def import_btn_click(self):
    file = QFileDialog.getOpenFileName(self, '选择文件', os.getcwd(), 'Text File(*.txt)')
    file_path = file[0]
    print(file_path)
    fl = open(str(file_path), 'r', encoding='utf-8')
    self.data_list = fl.read().strip().split('\n')
    print(self.data_list)
    self.message.setText('信息提示 | 成功导入[' + str(len(self.data_list)) + ']条食物信息')

最后

今天的这个食物生成器分享到这里就结束啦,其实这个用处很大的,自己也可以改成其他的,就看你们自己想改成什么啦

视频教程

小圆在这里还给大家推荐个零基础朋友学习的案例教程 有兴趣的可以看看哦 需要源码也可以点击下方名片领取 ~

【Python案例教学】最适合零基础学习的实用案例,手把手带练,让你成为下一个Python大神

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年8月23日
下一篇 2023年8月23日

相关推荐